indexOf()
给出了匹配元素的唯一索引,但我们如何在JavaScript中找到匹配元素的所有索引?
答案 0 :(得分:1)
我会这样做;
Array.prototype.indicesOf = function(x){
return this.reduce((p,c,i) => c === x ? p.concat(i) : p ,[]);
};
var arr = [1,2,3,4,1,8,7,6,5];
console.log(arr.indicesOf(1));
console.log(arr.indicesOf(5));
console.log(arr.indicesOf(42));
答案 1 :(得分:0)
Array.prototype.indexesOf = function(el) {
var ret = [];
var ix = 0;
while (true) {
ix = this.indexOf(el, ix);
if (ix === -1) break;
ret.push(ix);
}
return ret;
};
然后
[1,2,3,1].indexesOf(1)
应该返回[0,3]
。