我有一个对象数组,如下所示:
$scope.objectArray = [
{Title: 'object1', Description: 'lorem', Value: 57},
{Title: 'object2', Description: 'ipsum', Value: 32},
{Title: 'object3', Description: 'dolor', Value: 135}
]
我想检查并返回 true,如果该数组中的所有对象在属性“value”内都有一个值。
我想我可以用 forEach 循环来做到这一点,但是有比这更好的方法吗?
var isTrue = true;
angular.forEach(objectArray, function(o){
if (!o.Value){
isTrue = false; // change variable 'isTrue' to false if no value
}
});
您可以使用Array#every with 箭头功能
var isTrue = objectArray.every(obj => obj.Value);
var objectArray = [
{Title: 'object1', Description: 'lorem', Value: 57},
{Title: 'object2', Description: 'ipsum', Value: 32},
{Title: 'object3', Description: 'dolor', Value: 135}
];
var isTrue = objectArray.every(obj => obj.Value);
document.body.innerHTML = isTrue;
Update:
处理0
value, Object#hasOwnProperty可以使用。
objectArray.every(obj => obj.hasOwnProperty('Value'))
var objectArray = [
{Title: 'object1', Description: 'lorem', Value: 57},
{Title: 'object2', Description: 'ipsum', Value: 32},
{Title: 'object3', Description: 'dolor', Value: 0}
];
var isTrue = objectArray.every(obj => obj.hasOwnProperty('Value'));
document.body.innerHTML = isTrue;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)