美文网首页
移除数组中的元素的几种解法

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

作者: avalia | 来源:发表于2018-06-11 15:35 被阅读0次

    问题描述:

    移除数组 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<arr.length;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;

      }

    相关文章

      网友评论

          本文标题:移除数组中的元素的几种解法

          本文链接:https://www.haomeiwen.com/subject/nibbsftx.html