我知道必須有更好的方法來做到這一點。我有一對嵌套的javascript對象集合。更好的方法來做嵌套集合的JavaScript中的布爾數組
Objects
Field1
Value
Field2
Value
Field3
Value
Objects2
Field1
Value
Field2
Value
Field3
Value
Objects3
Field1
Value
Field2
Value
Field3
Value
我需要獲取對象1,2和3的字段的值,並檢查它們是否爲真或假。這是我現在使用的代碼。
var valid = [];
if (objects instanceof Array) {
for (var i = 0; i < objects.length; i++) {
var fieldIsFull = [];
// Loop through all fields to check if empty and build array
for (var j = 0; j < objects[i].Fields.length; j++) {
if (objects[i].Fields[j].isRequired) {
if (objects[i].Fields[j].Value != null ||
objects[i].Fields[j].Value != undefined) {
fieldIsFull.push(true);
} else {
fieldIsFull.push(false);
}
}
}
// Check array for any false value.
if ($.inArray(false, fieldIsFull) >= 0) {
valid.push(false);
} else {
valid.push(true);
}
}
// Check array for any false value.
if ($.inArray(false, valid) >= 0) {
return false;
} else {
return true;
}
必須有更好的方式來做我正在做的事情。任何人都可以用更高效的方式幫助我做到這一點嗎?
SOLUTION: 這是我結束了的代碼,因爲我只需要虛假的價值。
if (objects instanceof Array) {
for (var i = 0; i < objects.length; i++) {
// Loop through all fields to check if empty
for (var j = 0; j < objects[i].Fields.length; j++) {
if (objects[i].Fields[j].isRequired) {
if (objects[i].Fields[j].Value == null) {
return false;
}
}
}
}
return true;
這兩個答案(安德魯和波蒂)都很棒。但最終我只需要虛假的價值。沒有必要對實際值進行操作。 – coryrwest