需求:
监听二维数组内部属性,二维数组为列表数据,若有item满足条件则返回true。
遍历二维数组结果,都为true则一位数组结果为true,反之亦然!
代码如下:
let arr =
{
package: [
{
configuration: [
{
isChecked: true
}, {
isChecked: false
}, {
isChecked: false
}
]
},
{
configuration: [
{
isChecked: true
}, {
isChecked: false
}, {
isChecked: false
}
]
}
]
}
function arrAllIsChecked() {
let key = 'package'
let obj = 'configuration'
if(arr.package) {
return arr[key].map(item => item[obj].some(currentObj => currentObj.isChecked)).every(e => e)
}
}
console.log(arrAllIsChecked()) // true
知识点:
some() 遍历数组只要有满足条件的属性值则返回true.
every() 遍历数组数组内容都满足条件返回true,反之返回false。
拓展:若要使数组内部所有监听属性都满足条件将some改为every即可!