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函数。
答案 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);