校验正确获取对象或者数组的属性方法(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