返回多个indexOf
Returning multiple indexOf
我在下面有一个类似的数组
var my_array = ['Hello', 'How Are you?', 'Hello', 'Good morning!', 'Hello'];
我的目标是获取所有值为'Hello'的位置
欲望的结果:
0, 2, 4
每当我尝试my_array . indexof ("Hello")。它只返回第一个找到的0。
function indexesOf(str,arr){
var res = [];
for(i=0;i<arr.length;i++){
if(arr[i] == str)
res.push(i);
}
return res;
}
var my_array = ['Hello', 'How Are you?', 'Hello', 'Good morning!', 'Hello'];
var indexes = indexesOf("Hello", my_array);
或者你可以使用Array prototype:
Array.prototype.indexesOf = function (str){
var res = [];
for(i=0;i<this.length;i++){
if(this[i] == str)
res.push(i);
}
return res;
}
var my_array = ['Hello', 'How Are you?', 'Hello', 'Good morning!', 'Hello'];
var indexes = my_array.indexesOf("Hello");
我最初认为你的问题也有部分匹配的元素,但它没有。在任何情况下,如果您想包含部分匹配,这将为您工作:
var my_array = ['Hello', 'How Are you?', 'Hello World', 'Good morning!', 'Hello'];
function indexesOf(str,array) {
var arr = [], re = new RegExp(str, 'g');
array.forEach(function(val,idx) {
if (val.match(re)) { arr.push(idx) }
});
return arr;
}
console.log(indexesOf('Hello',my_array));
相关文章:
- 为什么空数组上的 indexOf 不返回 -1
- 为什么indexOf()在值存在时仍然返回-1
- 如何使用字符串的 indexOf 返回的值
- indexof 为相同的输入返回 -1 和 7
- 返回未捕获类型错误的 Javascript:无法调用未定义的方法 'indexOf'
- jQuery .each 返回 TypeError: 无法调用未定义的方法 'indexOf'
- 测试 indexOf 返回值的最佳做法
- javascript indexOf总是返回-1
- ValueIterator.toArray().indexOf()返回意外结果
- indexOf为数组中存在的值返回-1
- Javascript函数indexOf返回不正确的结果
- indexOf对于document.location始终返回true
- 为什么IndexOf返回-1 ?
- google sheets string.indexOf('string')没有正确返回
- indexOf返回-1,为什么?
- 替换javascript对象中的字段?对于splice和push, splice的indexOf返回-1值
- jQuery inArray和Javascript IndexOf返回部分匹配.我需要和完全匹配的人核对一下
- Knockout:indexOf返回-1会造成更多混乱
- Javascript数组indexOf返回未定义的值
- indexOf != -1返回一个布尔值吗?