用一行代码搞定数组去重
用最简短的代码搞定数组去重,欢迎指正不足之处
第一种
/* 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
版权声明:本博客原创文章使用CC3.0授权协议,署名-非商业性使用-禁止演绎。转载本博客文章须在开头位置著名原作者姓名以及原文链接,违反协议的转载将受到我本人的版权追责。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步