例如上图有个数组arr,我想拿到标红的地方
常规方法: arr&&arr[0]&&arr[0].activityInfo&&....... 很麻烦
封装一个方法来解决它
var deepSeek= function(obj, arr = []) {
//如果不是引用类型就返回该数据本身
if (typeof obj !== 'object') {
return obj
}
//利用reduce的特性来处理
var result = arr.reduce(function(pre, cur) {
return (pre && pre[cur]) ? pre[cur] : null
}, obj)
return result
}
//调用它
deepSeek(arr[index],['activityInfo',0,'bonusList',0,'bonusRulesDesc'])
就可以完美的判断数据是否存在不为空,并拿到数值
利用这个方法,我们就完美解决了这个问题了