请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。

 

这是牛客网上的一道题~

题意:遇到重复元素就删除(留下第一个不重复的即可)。

解题思路:双循环一遍数组,arr[i] == arr[j] 成立时,删除 arr[j],并将 arr[j] 直接push到一个新数组中去。

js代码实现:

 

var array1 = [1,2,3,4,5,2,3,1,5,4];
  function del(arr){
    var ret = [];
    for(var i = 0; i < arr.length;i ++){
         for(var j = i+1;j < arr.length;j++){
        if(arr[j] == arr[i])
          ret.push(arr.splice(j,1)[0]); //splice返回一个与参数有关的数组,splice(j,1)[0] 即为循环一次删除的元素,并将其添加到ret数组中
      }
    }
      console.log(ret);
  }
  //test
  del(array1);
  //Array [1, 2, 3, 4, 5]

 

 

 

 重复元素就成功添加进ret数组中了~

 

  

 

posted @ 2019-04-20 22:06  足迹#  阅读(626)  评论(0编辑  收藏  举报