给出以下vue.js对象:
FormattedData: Object
1: Object
approved: true
2: Object
approved: undefined
3: Object
approved: false
4: Object
approved: true
寻找一种明智/雄辩的方法来遍历对象属性approved
并在任何未定义的情况下返回false。
这是目前的解决方案:
checkAllApproved() {
let allApproved = false;
for(let design in this.orderInfo.FormattedData) {
if(this.orderInfo.FormattedData.hasOwnProperty(design)) {
allApproved = this.orderInfo.FormattedData[design].approved;
}
if(typeof allApproved == 'undefined') {
return false;
}
}
return true;
}
答案 0 :(得分:1)
您可以使用Array.prototype。I1 I0 O
0 0 B0
0 1 B1
1 0 B2
1 1 B3
来测试数组中的任何元素是否具有指定的条件参数。
some
vue_data.some(({approved}) => approved === undefined);
答案 1 :(得分:1)
checkAllApproved() {
return Object.values(this.orderInfo.FormattedData).every(({approved})=>
typeof approved !== 'undefined')
}
仅当回调从值对象中提取{approved}
属性的回调将对我们创建的数组中的所有所有项目返回true时,every()函数才会返回true: Object.values(this.orderInfo.FormattedData)
只是由this.orderInfo.FormattedData
对象的所有值组成的数组。
有关Object.values()和every()之类的方法的更多信息