在JavaScript中查找数组内数组的索引位置

时间:2017-01-21 12:02:10

标签: javascript arrays list

var a = [[1,0],[0,1],[0,0]];

如果我想找到[0,0]的索引位置?如何在 JavaScript 中完成?

我检查了一些地方和 indexOf 功能,但它不适用于多维数组。

3 个答案:

答案 0 :(得分:0)

您可以制作索引的哈希图并访问

var a = [[1,0],[0,1],[0,0]],

b = a.reduce((a,c,i)=>{
  a[c] = i;
  return a;      
},{});

console.log('Index of [0,0] is ' +b[ [0,0] ] )

答案 1 :(得分:0)

您可以使用Array#some进行外部迭代,使用Array#every进行内部迭代,并检查长度和项目。



var array = [[1, 0], [0, 1], [0, 0]],
    find = [0, 0],
    index = -1;

array.some(function (a, i) {
    if (a.length === find.length && a.every(function (b, j) { return b === find[j]; })) {
        index = i;
        return true;
    }
});

console.log(index);




答案 2 :(得分:0)

使用Array.prototype.every()循环和var a = [[1,0],[0,1],[0,0]], len = a.length, search_item = [0,1], pos = -1; while (len--) { if ((a[len].length === search_item.length) && a[len].every(function(el, i){ return el == search_item[i]; })) { pos = len; break; } } console.log(pos);函数

快速 (在性能方面)解决方案:

{{1}}

Array.prototype.every()