js数组常用去重的几种方法(includes、sort、indexOf、splice、filter)
作者:Miao 阅读:3807次
includes去重
arr.includes(指定元素(必填),指定索引值(可选,默认值为0)),有值返回true,没有则返回false。
let arr = [-2, 1, 9, -3, -2, 6, 6, 7]; function test(arr) { let arrNew = []; for (let i = 0, len = arr.length; i < len; i++) { if (!arrNew.includes(arr[i])) { arrNew.push(arr[i]); } } return arrNew; } console.log(test(arr)); // -2, 1, 9, -3, 6, 7
sort去重(默认升序)
let arr = [5, 4, 1, 9, 1, 8, 3, 4, 9, 7, 0]; function test(arr) { arr = arr.sort(); let arrNew = [arr[0]]; for (let i = 1, len = arr.length; i < len; i++) { if (arr[i] !== arr[i - 1]) { arrNew.push(arr[i]); } } return arrNew; } console.log(test(arr)); // 0, 1, 3, 4, 5, 7, 8, 9
indexOf去重
array.indexOf(item,statt) 返回数组中某个指定的元素的位置,没有则返回-1。
let arr = [1, 0, -1, 0, 1, 8, 3, 8]; function test(arr) { let arrNew = []; for (let i = 0, len = arr.length; i < len; i++) { if (arrNew.indexOf(arr[i]) === -1) { arrNew.push(arr[i]); } } return arrNew; } console.log(test(arr)); // 1, 0, -1, 8, 3
splice去重(双for循环,ES5常用)
let arr = [1, 5, 6, 8, 7, 3, 8, 5, 9, 7, 5]; function test(arr) { for (let i = 0, len = arr.length; i < len; i++) { for (let j = i + 1, len = arr.length; j < len; j++) { if (arr[i] === arr[j]) { arr.splice(j, 1); j--; } } } return arr; } console.log(test(arr)); // 1, 5, 6, 8, 7, 3, 9
filter去重
let arr = [1, 2, 8, 9, 9, 8, 3, 2, 5]; function test(arr) { return arr.filter(function(item, index) { return arr.indexOf(item, 0) === index; }); } console.log(test(arr)); // 1, 2, 8, 9, 3, 5
本站部分文章、数据、素材收集于网络,所有版权均归源网站或原作者所有!
如果侵犯了您的权益,请来信告知我们下线删除,邮箱:357234902@qq.com