我有一个像这样的数组
var a = [[1, 0], [3, 0], [5, 0], [7, 0]];
我正在运行一行非常简单的indexOf()
。然而,尽管我使用的测试值确实存在于数组中,但我一直得到 -1。
var i = a.indexOf([1, 0]);
console.log("INDEX: ", i);
我是不是哪里搞错了?
最佳答案
您可以使用#findIndex()
和 #every()
查找 outer 数组内 inner 数组的索引 - 请参阅下面的演示:
var a = [[1, 0], [3, 0], [5, 0], [7, 0]];
var search = [1,0]; // array to get index of from the 'a'
var i = a.findIndex(function(n) {
return search.every(function(p,q) {
return p === n[q]
});
});
console.log("INDEX: ", i);
以及更简单的ES6风格:
var a = [[1, 0], [3, 0], [5, 0], [7, 0]];
var search = [1, 0]; // array to get index of from the 'a'
var i = a.findIndex(n => search.every((p, q) => p === n[q]));
console.log("INDEX: ", i);
关于javascript indexOf() 不断返回-1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45778708/