2016-09-24 108 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. 
}