如何获取数组中嵌套对象中属性值不为空的对象?
有一个对象数组如下:
let arr = [
{id:1,aa:'aa1'},
{id:2,aa:'aa2',bb:{ cc:{dd:12} }},
{id:3,aa:'aa3',bb:{}},
{id:5,aa:'aa4',bb:{ cc:{dd:''}}},
{id:6,aa:'aa5',bb:{ cc:{dd:null}}},
{id:7,aa:'aa6'},
{id:8,aa:'aa7',bb:{ cc:{dd:1} }},
]
当然要找到属性部位空的方法有很多中foreach、map循环判断等等!
但是如何简洁的找到 属性值不为空的 对象了?
你需要用到ES6最新的链式判断 和 Javascript中filter()!
浅写一下代码如下:
let a = arr.filter(x => x.bb?.cc?.dd)
是不是意想不到?一行代码解决!
当然知其然、还要知其所以然!
- 链式运算符 是 " ?. "
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
filter 里创建了 一个箭头函数 并返回了 数组中属性不为空的对象