Javascript:测试2D数组中的值

时间:2016-09-24 15:06:35

标签: javascript arrays

如何测试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*
    }
}

3 个答案:

答案 0 :(得分:4)

您可以使用every()方法并返回true/false

&#13;
&#13;
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;
&#13;
&#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.
}