校验正确获取对象或者数组的属性方法(babel-plugin-idx/_.get)
背景:
开发中经常遇到取值属性的时候,需要校验数值的有效性。
例如:
获取props对象里面的friends属性
props.user && props.user.friends && props.user.friends[0] && props.user.friends[0].friends
对于深层的对象,代码会写的特别长,为了避免这种情况,可以使用现成的方法。
方法一: babel-plugin-idx插件
import idx from 'idx';const getFriends = idx(props, _.user.friends[0].friends);
方法二:_.get(object, path, [defaultValue])
(lodash中的方法)
其中path的数据类型是array或者string。
而且array中的每一项都是字符串。
import _ from 'lodash';_.get(props, ["props", "user", "friends", "0", "friends"])或者_.get(props, "props.user.friends[0].friends")
最后一项default值是当取值出错时的默认返回值
_.get(props, "props.user.friends.friends", "default") // "default" // 最后返回default
转载于:https://www.cnblogs.com/lyraLee/p/11051444.html
校验正确获取对象或者数组的属性方法(babel-plugin-idx/_.get)相关推荐
- 从零开始学前端:中括号代替点操作,获取对象,自定义标签属性 --- 今天你学习了吗?(JS:Day3)
从零开始学前端:程序猿小白也可以完全掌握!-今天你学习了吗?(JS) 复习:从零开始学前端:初识函数,合法属性与自定义属性 - 今天你学习了吗?(JS:Day2) 文章目录 从零开始学前端:程序猿小白 ...
- 微信小程序使用setData方法修改data中对象或数组的属性值
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站 微信小程序使用setData方法修改data中对象或数组的属性值 使用微信小程序开发时,涉及到data ...
- 微信小程序更新二维数组中的对象或数组的属性值
微信小程序更新二维数组中的对象或数组的属性值,这里可能有两种情况 1.微信小程序更新二维数组中的对象的属性值 更新二维数组中的某个对象的属性值,代码如下 js 代码 data: {familys:[{ ...
- java js对象转字符串数组_js 转json格式的字符串为对象或数组(前后台)的方法
一.前台 // 转换成对象 var myObject = JSON.parse(_data); alert("对象:"+myObject.msg); // 转换成数组 var my ...
- ts 数组转换对象 对象转换数组的公共方法
1.封装 在项目的utils=>index.ts文件内写方法 // 封装数组转换对象 对象转换数组的公共方法 type=1是 数组(例[1,2,3]) ==>对象数组(例[{vaue:1} ...
- php中多维数组的长度,php中count获取多维数组长度的方法
这篇文章主要介绍了php中count获取多维数组长度的方法,实例分析了数组的原理并总结了数组长度计算的方法,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了php中count获取多维数组长度的实 ...
- php对象数字属性,PHP获取对象的纯数字属性
##php的对象属性 我们知道获取php的对象属性用箭头: echo $obj->name; 如果属性名是一个变量,那么可以用: $var = 'name'; echo $obj->$va ...
- php中count获取多维数组长度的方法
转自:http://www.jb51.net/article/57021.htm 本文实例讲述了php中count获取多维数组长度的实现方法.分享给大家供大家参考.具体分析如下: 先来看看下面程序运行 ...
- 深入vue2响应式原理,在对象或数组新增属性无响应解决方法
前言 该问题只存在vue2, 基于Object.defineProperty的特性,vue3中的proxy已经解决了该问题,但也存在兼容性问题,例如IE系统任意版本都不支持. vue2是如何追踪数据变 ...
最新文章
- Sqlserver:sp_recompile的副作用
- 小程序时间转换成时间戳
- To rename a docker image
- proxytable代理不生效_民法典房屋买卖合同卖方代签合同生效吗
- matlab计算频域动态性能指标,基于MATLAB自动控制系统时域频域分析与仿真.doc
- python 高阶函数一 概念
- axios与ajax对比,AjAX 步骤和对比fetch和axios
- 泰坦尼克号的数据集的下载 tensflow
- Android webview数据获取 webview抓取
- 使用Python在Windows环境下切换输入法
- python定时发qq消息_Python如何实现定时发送qq消息
- 单个正态总体均值的区间估计_总体均值的区间估计 (正态总体: σ2 已知实例).pdf...
- 2019备考[嵌入式系统设计师]你准备好了吗?
- 操作系统-进程映像、虚拟内存
- 第四届中国(广东)国际“互联网+”博览会今日在佛山开幕 聚集工业“智慧”推动产业加速转型...
- 单片机输入和输出模式简要说明
- 解决google打开以后跳转到hao123
- 华为云电脑+teamviewer ssh实现手机远程操控服务器
- 入职两年,我和业务撕了108次逼
- 使用window小娜实现文本转语音
热门文章
- 在 Visual Basic .NET 或 JScript 代码中使用早期绑定
- 如何快速实现HTML编辑器.NET组件
- 我的个人博客搭建记录
- 线性回归介绍及分别使用最小二乘法和梯度下降法对线性回归C++实现
- 【GStreamer】gstreamer工具详解之:ges-launch-1.0
- gis怎么改鼠标滚轮缩放_ArcGIS鼠标滚轮方向之代码篇
- Jenkins 流水线 获取git 分支列表_jenkins的安装和配置 自动化部署 码云 gitee
- Java多线程复习:1(进程和线程、并发和并行)
- 信息记录拉取失败_天猫入驻为什么失败?猫店侠做详细解读
- python类和对象课件_简单解释Python的类和对象