用一行代码搞定数组去重

 用最简短的代码搞定数组去重,欢迎指正不足之处

 第一种

       /* let numbers = [3, 8, 10, 18, 20];
        let num_test = [4, 5, 10, 18, 20];*/
        const arr_num = [3, 8, 10, 18, 20].concat([4, 5, 10, 18, 20]);
        let res =[];    
        $.each(arr_num,(item, index)=> {
               res.length==0 ||($.inArray(index,res)===-1) ? res.push(index) : null ;
         });

        console.log(res);
        // [3, 8, 10, 18, 20, 4, 5] 

 

 

前面为运用到一些es6的写法比较简短,简单的jquery写法为:

        var numbers = [3, 8, 10, 18, 20];
        var num_test = [4, 5, 10, 18, 20];
        var arr_num = numbers.concat(num_test);
        var res =[];    
       $.each(arr_num,function (item, index) {
             if(res.length==0 ||($.inArray(index,res)===-1) ){
                 res.push(index);
                 }else{
                   return ;}
         });
        console.log(res);
        // [3, 8, 10, 18, 20, 4, 5] 

第二种:一行代码

const unique = (arr) => [...new Set(arr)];

 

 关于三元运算符中不能用return的问题,条件 ? 例子1: 例子2;

网上查找无果,在实践过之后得知(ps:三元运算符也有人叫三目运算符)

 三元运算符/三目运算符 例子1和例子2不能是语句必须要有值,而return不是合法的有值表达式。

一开始我写的判断是:

 res.length==0 ||($.inArray(index,res)===-1) ? res.push(index) : return;
//报错
//SyntaxError: expected expression, got keyword 'return'

 

关于return:

retrun true; 返回正确的处理结果。
return false;返回错误的处理结果,终止处理。
return;把控制权返回给页面返回null,继续执行

 所以,在使用三元运算符实在需要使用return的话,可以直接写return的结果即可,避免使用return容易跳错

转载于:https://www.cnblogs.com/web1/p/8513946.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值