移除数组中的元素(操作原数组)

来源:互联网 发布:tm域名有必要注册吗 编辑:程序博客网 时间:2024/06/08 14:01

题目:

移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回

输入:

[1,2,3,4,2] ,2

输出:

[1,3,4]


使用splice()删除与item相同的值并把数组索引回退一个值(i--)

function removeWithoutCopy(arr, item) {
    for (var i = 0; i< arr.length;i++){

      if(arr[i] === item){

       arr.splice(i,1);

        i--;

     }

    }

    return arr;
}

把数组看成是队列,等于item元素直接删除,不等于的,先push再====>>删除。

function removeWithoutCopy(arr, item) {
    var n = arr.length;
    for (var i = 0; i<n;i++) {
        if(arr[0] !== item){
            arr.push(arr[0]);
        }
        arr.shift();
    }
    return arr;
}


function removeWithoutCopy(arr, item) {
    var n = arr.length;
    for (var i = 0; i<n;i++) {
        if(arr[0] !== item){
            arr.push(arr[0]);
        }
        arr.splice(0,1);
    }
    return arr;
}