- 移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组
function remove(arr, item) {
var newArr = [];
arr.forEach(function(e){
if(e != item){
newArr.push(e);
}
})
return newArr;
}
- 移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回
//方法一
indexOf = function(item,arr){
for(var i = 0;i<arr.length;i++){
if(arr[i] == item){
return i;
}
}
return -1;
}
function removeWithoutCopy(arr, item) {
var num = arr.length;
for(var i = 0;i<num;i++){
var index = this.indexOf(item,arr);
if(index > -1){
arr.splice(index,1);
}
}
return arr;
}
//方法二
function removeWithoutCopy(arr, item) {
var num = arr.length;
for(var i = 0; i < num; i++){
if(arr[0] != item ){
arr.push(arr.shift());
}else{
arr.shift();
}
}
return arr;
}