2017-06-14 71 views
0
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; 
    } 
}); 

我想知道如何使用地图或过滤功能这一点。

+0

你想找到的包含数字的子数组的索引?或删除所有不包含的内容? –

+0

对不起,只是返回子数组的索引。我将重新编写Q. –

回答

0

使用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);

+0

如果我需要获得'9'的确切位置,即两个索引,该怎么办? – Alexandr

+1

@Alexandr - 查看更新后的答案:) –