var a = [[1,0],[0,1],[0,0]];如果我想找到[0,0]的索引位置?如何在JavaScript中做到这一点?
我检查了一些places和indexOf函数,但是它不适用于多维数组。
发布于 2017-01-21 12:15:31
您可以制作索引的hashmap并访问
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] ] )
发布于 2017-01-21 12:24:01
您可以使用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);
发布于 2017-01-21 12:27:54
快速(就性能而言)解决方案使用while循环和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);
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every
https://stackoverflow.com/questions/41779105
复制相似问题