移除数组中的元素的几种解法

问题描述:

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

输入:

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

输出:

[1, 3, 4]


解法一:将数组中等于item的项都用splice()方法删除,记得删除后要让i后退一位,数组长度减1。也看到有人倒着删除,就不用考虑位置关系了。

function removeWithoutCopy(arr, item) {

    for(var i=0; i

        if(arr[i]==item){

            arr.splice(i,1);

            i--;

            arr.length--;

        }

    }

    return arr;

}

解法二:用indexOf()查找数组中等于item的数的位置,还是用splice()删除。

function removeWithoutCopy(arr, item) {

    while(arr.indexOf(item)>=0 && arr.indexOf(item)<=arr.length){

        var pos = arr.indexOf(item);

        arr.splice(pos,1);

    }

    return arr;

}

解法三:

链接:https://www.nowcoder.com/questionTerminal/a93dd26ebb8c425d844acc17bcce9411

来源:牛客网

function removeWithoutCopy(arr, item) {

      for(var i in arr){

          arr.splice(i,1);

      }

      return arr;

  }

你可能感兴趣的:(移除数组中的元素的几种解法)