面试题十六:js/javascript数组去重
七娃博客71 次
js数组去重的方法有很多,例如:new Set()、includes、splice、indexOf、sort、hasOwnProperty、filter...等等,除了ES6的Set方法之外,原理都是通过判断新数组是否包含老数组的一项,不包含就添加到新数组中,否则进入下一个循环。
1.Set()方法
Set是es6新增的数据结构,key不能重复,存储任意类型的唯一值。缺点就是不能去空'{}'。
方法一:
let aa = Array.from(new Set(arr))
方法二:
let cc =[...new Set(arr)]
2.includes 方法,检测是否包含指定的子字符串。 匹配成功返回 true,否则返回 false
function unique(arr){ let newO = []; for(let i = 0; i < arr.length; i++){ if(!newO.includes(arr[i])){ newO.push(arr[i]) } } return newO; }
3.indexOf 方法,找到匹配项,返回所在的索引
function unique(arr){ let newO = []; for(let i = 0; i < arr.length; i++){ if( newO.indexOf(arr[i]) < 0){ newO.push(arr[i]) } } return newO; }
剩余的方法不啰嗦了,大致原理都是 符合条件,新增到新数组里面,重复扔掉!
评论 | 0 条评论
登录之后才可留言,前往登录