如何测试2D数组的值?
我有一个如下所示的2D数组:
array: [
["A", 24, 5],
["B", 135, 5],
["C", 2124, 5]
]
如果位置2:array [i] [2]中的所有值都等于5,我需要执行一个函数。
for (i = 0; i < array.length; i++){
if (that.ptLiaison[i][2]=="5"){ //need to check all the instances of i at once
*execute function*
}
}
答案 0 :(得分:4)
您可以使用every()
方法并返回true/false
var array = [
["A", 24, 5],
["B", 135, 5],
["C", 2124, 5]
];
var result = array.every(function(arr) {
return arr[2] == 5;
});
if(result) console.log('Run function');
&#13;
答案 1 :(得分:0)
您可以使用.every()
if(that.ptLiaison.every(function(row){
return row[2] == "5";
})){
}
这循环并检查每次迭代是否为真,如果它们全部都是整个操作,则返回true。
您还可以使用更强大的功能:
var checkAllRows = function(array,index,value){
return array.every(function(row){
return row[index] == value;
});
}
if(checkAllRows(that.ptLiaison,2,"5")){
*do something*
}
答案 2 :(得分:0)
有几种方法可以做到这一点。其中一种方法是以下逻辑:如果我们想要所有元素等于5
时执行函数,那么这意味着如果至少有一个元素不是5
,我们就不应该执行函数。代码如下:
var needExecuteFunction = true;
for (i = 0; i < array.length; i++){
if (that.ptLiaison[i][2] != "5"){
needExecuteFunction = false;
break;
}
}
if(needExecuteFunction){
// execute it.
}