forEach
function findAll(arr, target) {
var result = [];
arr.forEach(function (item, index) {
item !== target || result.push(index);
});
return result;
}
function findAll(arr, target) {
var result = [];
arr.forEach(function (item, index, arr) {
target == item ? result.push(index) : 0;
})
return result;
}
function findAll(arr, target){
var result = [];
arr.forEach((e, i) => target == e ? result.push(i) : result);
return result
}
filter
function findAll(arr, target) {
var result = [];
arr.filter(function (item, index) {
return item === target && result.push(index);
});
return result;
}
for
function findAll(arr, target) {
var result = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] === target) {
result.push(i);
}
}
return result;
}
lastIndexOf+slice/splice
function findAll(arr, target) {
var result = [],
index = arr.lastIndexOf(target);
while (index > -1) {
result.push(index);
arr.splice(index, 1);
index = arr.lastIndexOf(target);
}
return result;
}
indexOf
function findAll(arr, target) {
var result = [],
index = arr.indexOf(target);
while (index > -1) {
result.push(index);
index = arr.indexOf(target, index + 1);
}
return result;
}
function findAll(arr, target) {
var arrstr = arr.join("");
var biao = [];
for (var i = arrstr.indexOf(target); i != -1; i = arrstr.indexOf(target, i + 1)){
biao.push(i);
}
return biao;
}
map
function findAll(arr, target) {
var temp = [];
arr.map((v, i) => v === target && temp.push(i));
return temp;
}
map和filter
function findAll(arr, item) {
return arr.map(function (e, index) {
return e === item ? index : -1;
}).filter(function (i) {
return i !== -1;
})
}
箭头函数
const findAll = (arr, item) =>
arr.map((e, index) => e === item ? index : -1)
.filter(i => i !== -1);
递归
function findAll(arr, target) {
var newarr = [];
var pos = arr.indexOf(target);
if (pos != -1) {
newarr.push(pos);
arr.splice(pos, 1, undefined);
newarr = newarr.concat(findAll(arr, target));
}
return newarr;
}
reduce
function findAll(arr, target) {
return arr.reduce(function (a, item, index, arrs) {
return item == target ? a.concat(index) : a
}, [])
}