FreeCodeCamp学习之数组查找去重

数组查找去重

实现一个摧毁(destroyer)函数,第一个参数是待摧毁的数组,其余的参数是待摧毁的值

destroyer([1, 2, 3, 1, 2, 3], 2, 3) 应该返回  [1, 1].
destroyer([1, 2, 3, 5, 1, 2, 3], 2, 3) 应该返回  [1, 5, 1].
destroyer([3, 5, 1, 2, 2], 2, 3, 5) 应该返回  [1].
destroyer([2, 3, 2, 3], 2, 3) 应该返回  [].
destroyer(["tree", "hamburger", 53], "tree", 53) 应该返回 ["hamburger"].
开始时不熟悉,把 ([2, 3, 2, 3], 2, 3) 直接当成了数组,导致结果完全没有,实验了两次才发现arr[1]返回的是前面数组的第二个元素3,查找了才发现要用arguments来传入参数,只能考虑将要检验的数push进一个新的数组方便使用,然后用去重。indexOf查找不到返回-1,查到返回第一个所在位置对应值,filter返回一个新数组,包含arr中通过测试的值。

function destroyer(arr) {
         var newArr=[];

          for(i=1;i<arguments.length;i++){

                   newArr.push(arguments[i]);
           }

          var temp = arr.filter(function(item,index,array){
                   return newArr.indexOf(item) < 0;
           });
          return temp;

}

destroyer([1, 2, 3, 1, 2, 3], 2, 3,1);

转载于:https://www.cnblogs.com/skyyo/p/7611655.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值