练习牛客网笔试题--前端js--24-查找元素的位置
// 题目描述
// 在数组 arr 中,查找值与 item 相等的元素出现的所有位置
// 输入 ['a','b','c','d','e','f','a','b','c'] 'a'
// 输出 [0, 6]
1.自己的练习
function findAllOccurrences(arr, target) {
var newArr = [];
arr.forEach((item, index) => {
if(item === target) {
newArr.push(index);
}
});
return newArr;
}
2.题解
1. filter
function findAllOccurrences(arr, target) {
var result=[];
arr.filter(function(item,index){
return item===target&&result.push(index);
});
return result;
}
2. for
function findAllOccurrences(arr, target) {
var result=[];
for(var i=0;i<arr.length;i++){
if(arr[i]===target){
result.push(i);
}
}
return result;
}
3. lastIndexOf+slice/splice
function findAllOccurrences(arr, target) {
var result=[],index=arr.lastIndexOf(target);
while(index>-1){
result.push(index);
arr.splice(index,1);//arr=arr.slice(0,index);
index=arr.lastIndexOf(target);
}
return result;
}
4. indexOf
function findAllOccurrences(arr, target) {
var result=[],index=arr.indexOf(target);
while(index>-1){
result.push(index);
index=arr.indexOf(target,index+1);
}
return result;
}