Kir*_*rry 9 javascript jquery boolean multidimensional-array
我有一个bool的多维数组,每个元素都设置为true:
var boolarray = $ .extend(true,[],board);
board是一个3x3多维字符串数组.boolarray只是一个深刻的副本.
for (var i=0; i < boolarray.length; i++) {
boolarray[i]
for (var j=0; j < boolarray[i].length; j++) {
boolarray[i][j] = true;
};
};
Run Code Online (Sandbox Code Playgroud)
这给了我:
boolarray = [true,true,true,true,true,true,true,true,true]
我想检查所有元素是否都为真,如果是这种情况则返回.但是我的方法不起作用.
if (boolarray == true)
{
console.log("all elements in boolarray are true, return true ")
return true;
}
else
{
console.log("not all elements in boolarray are true, return false")
return false;
}
Run Code Online (Sandbox Code Playgroud)
关于如何检查boolarray是否真实的任何想法?
小智 28
用.every()...
var boolarray = [true,true,true,true,true,true,true,true,true];
boolarray.every(Boolean);
Run Code Online (Sandbox Code Playgroud)
演示: http : //jsfiddle.net/gFX7X/
如果第一个循环的唯一目的是创建第二个循环,那么你可以跳过它并执行此操作......
var boolarray = [[true, true, true],
[true, true, true],
[true, true, true]];
boolarray.every(function(arr) {
return arr.every(Boolean)
});
Run Code Online (Sandbox Code Playgroud)
演示: http : //jsfiddle.net/gFX7X/1/
或者是前一个版本的略短版本:
boolarray.every(Function.call.bind(Boolean, null))
Run Code Online (Sandbox Code Playgroud)
您需要再次循环遍历数组以检查所有值;与分配它们的方式非常相似:
for (var i=0; i < boolarray.length; i++) {
for (var j=0; j < boolarray[i].length; j++) {
if (boolarray[i][j] == false) {
return false;
}
};
};
return true;
Run Code Online (Sandbox Code Playgroud)