Javascript 如果数组中的所有对象在属性中都有值,则返回true
我有一个对象数组,类似这样:Javascript 如果数组中的所有对象在属性中都有值,则返回true,javascript,angularjs,Javascript,Angularjs,我有一个对象数组,类似这样: $scope.objectArray = [ {Title: 'object1', Description: 'lorem', Value: 57}, {Title: 'object2', Description: 'ipsum', Value: 32}, {Title: 'object3', Description: 'dolor', Value: 135} ] 如果此数组中的所有对象在属性“value”中都有值,我将检查并返回true 我想我可以用
$scope.objectArray = [
{Title: 'object1', Description: 'lorem', Value: 57},
{Title: 'object2', Description: 'ipsum', Value: 32},
{Title: 'object3', Description: 'dolor', Value: 135}
]
如果此数组中的所有对象在属性“value”中都有值,我将检查并返回true
我想我可以用forEach循环来实现,但是有没有比这更好的方法呢
var isTrue = true;
angular.forEach(objectArray, function(o){
if (!o.Value){
isTrue = false; // change variable 'isTrue' to false if no 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代码>如果0
不算数,只需使用即可
var$scope={objectArray:[{Title:'object1',Description:'lorem',Value:57},{Title:'object2',Description:'ipsum',Value:32},{Title:'object3',Description:'dolor',Value:135},
isTrue=$scope.objectArray.every(函数(a){
返回a.值;
});
文件。书写(isTrue)代码>您在哪里需要它?在HTML中?您可以使用ng repeat和afilter@NinaScholz是的,我相信它可能是,但在极少数情况下,我看到了你的解决方案,当我键入isobj时对它进行测试。Value
is0
那么这段代码就错了。我爱我一行,但是我得到变量obj是隐式声明的
这是为什么?@TuanAnhTran代码与问题中的相同。条件<代码>如果(!o.Value){
对于0
@Tushar-ah,也将被评估为false
。我错过了这个。对不起。@klskl这是一个警告,可以忽略。我已经更新了答案以允许0
值。将使用此解决方案,将0作为值处理边缘大小写,并且能够为另一个值编辑一点use@klskl请在问题中提及您希望同时允许0
值的选项。
var isTrue = objectArray.every(function(i) {
return i.Value;
}
var isTrue = objectArray.every(obj => obj.Value);