查找包含数字的子数组的索引

时间:2017-06-14 19:43:30

标签: javascript arrays multidimensional-array

var array = [[2,3,4],[4,5,6],[2,3,9]];
var number = 9;

如果我有这个嵌套数组,这个变量如何返回索引 其中带有数字的子数组是。所以最终的结果应该是2或。

到目前为止,我有:

var indexOfRemainingArray = array.filter(function(item,i) {
   if(item != number) {
     return i;
   }
});

我想知道如何使用map或filter函数。

1 个答案:

答案 0 :(得分:3)

使用Array#findIndex查找索引,并在回调中使用Array#indexOf来检查子数组是否至少包含一次该数字。

var array = [[2,3,4],[4,5,6],[2,3,9]];
var number = 9;

var indexOfRemainingArray = array.findIndex(function(sub) {
   return sub.indexOf(number) !== -1;
});

console.log(indexOfRemainingArray);

如果您需要两个索引,可以将内部indexOf的结果分配给变量:

var array = [[2,3,4],[4,5,9],[2,3,1]];
var number = 9;

var innerIndex;
var indexOfRemainingArray = array.findIndex(function(sub) {
   innerIndex = sub.indexOf(number);
   return innerIndex !== -1;
});

console.log(indexOfRemainingArray, innerIndex);

相关问题