假设我有一个包含字符串的数组:
var array = ["test","apple","orange","test","banana"];
和一些字符串完全相同(测试)。假设我想获取数组中所有索引,其中字符串 test 位于数组中,而不仅仅是第一个indexOf。有没有一个很好的解决方案,这个问题尽可能快,而不是使用jQuery,因此我得到0,2?
由于
答案 0 :(得分:0)
您可以像这样使用内置Array.prototype.forEach
var indices = [];
array.forEach(function(currentItem, index) {
if (currentItem === "test") {
indices.push(index);
}
});
console.log(indices);
更好的是,你可以像这样使用Array.prototype.reduce
var indices = array.reduce(function(result, currentItem, index) {
if (currentItem === "test") {
result.push(index);
}
return result;
}, []);
console.log(indices);
由于您希望解决方案在IE中工作,您可能希望使用普通的旧循环,例如
var indices = [], i;
for (i = 0; i < array.length; i += 1) {
if (array[i] === "test") {
indices.push(i);
}
}
console.log(indices);