移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组

题目要求不改变原数组,所以我们可以声明一个数组a用于保存arr中不同于item的值,最后将a返回。 

1、push

function remove(arr, item) {
     //声明一个新数组保存结果
     var a = [];
     //循环遍历
     for(var i=0; i < arr.length; i++){
         //如果arr[i]不等于item,就加入数组a
         if(arr[i] != item){
             a.push(arr[i]);
         }
     }
     return a;
 }

function remove(arr, item) {
    var a=[];
    arr.forEach(function(e){
        if(e!==item){
            a.push(e);
        }
    })
    return a;
}

2、splice

function remove(arr,item){
    var a= arr.slice(0);//将arr中的元素赋给a
    for(var i=0;i<a.length;i++){
        if(a[i] == item){
            a.splice(i,1);//删除a中第i个元素
            i--;
        }
    }
    return a;
}

3、filter()

function remove(arr,item){
    return arr.filter(function(ele){
         return ele != item;
    })
}

猜你喜欢

转载自www.cnblogs.com/lixiaoyao-1/p/8985533.html