我有一个值网格,由二维数组表示。
以下是数据的文字表示:dataValues[row][column]
所以dataValues[3][0]
将是第四行,第一列。
好吧,我需要在每行的第一列搜索一个值,我正在寻找计算密集度最低的方法。
我知道我可以用循环来做到这一点:
for (var i in dataValues) {
if (dataValues[i][0] == "Totals") {
matchingRow = i;
break;
}
}
但我喜欢尽可能避免循环,我想不出在这里以有用的方式应用Array.prototype.indexOf
的方法。
循环和indexOf之间是否存在计算差异?在我看来,indexOf可能只是运行自己的循环。
答案 0 :(得分:0)
您可以使用{{3}}一旦满足条件就会中断并返回第一个匹配元素,如果不满足条件则返回undefined
let matchingItem = dataValues.find(arr=> arr[0] == "Totals");
if(matchingItem ){
// do what you want with matching elemnt of dataValues
}