2016-09-24 68 views
0

如何测试二维数组的值?Javascript:二维数组中的测试值

我有一个2D阵列看起来像这样:

array: [ 
["A", 24, 5], 
["B", 135, 5], 
["C", 2124, 5] 
] 

我需要被执行的功能,如果在位置2中的所有值:阵列[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* 
    } 
} 

回答

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');

0

你可以使用一个。每()

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* 
} 
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. 
}