2017-06-14 110 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 - 查看更新後的答案:) –