移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组
function remove(arr, item) {
var newArr = arr.slice(0) //slice返回一个新数组,
for(var i = 0 ; i < newArr.length; i++){
if(newArr[i] ==item){
newArr.splice(i,1) //splice是对原数组进行操作
i-- //删除了其中一项,后面的会提前一项
}
}
return newArr
}
还可以使用filter方法
function remove(arr, item) {
return arr.filter(function(ele){
return ele != item
})
}
也可以用push方法
function remove(arr, item) {
var newArr = []
for(var i = 0; i < arr.length; i++){
if(arr[i] != item){
newArr.push(arr[i])
}
}
return newArr
}
直接在原数组上操作的方法,倒序遍历,不会影响数组元素原始的下标
function removeWithoutCopy(arr, item) {
for(i=arr.length-1;i>=0;i--)
{
if(arr[i]==item)
{
arr.splice(i,1);
}
}
return arr;
}