假设我有一个包含字符串的数组:
var array = ["test","apple","orange","test","banana"];
并且有些字符串是完全相同的(test)。假设我想获取字符串测试所在数组中的所有索引,而不仅仅是第一个indexOf。这个问题有没有一个好的解决方案,尽可能快,并且不使用jQuery,即得到0,2作为结果?
谢啦
您可以像这样使用内置的Array.原型. for每一个
var indices = [];
array.forEach(function(currentItem, index) {
if (currentItem === "test") {
indices.push(index);
}
});
console.log(indices);
更好的是,您可以像这样使用Array.原型. duce
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);