数组去重的方法
Posted gaoht
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组去重的方法相关的知识,希望对你有一定的参考价值。
方法一:利用
function arrRepeat(arr) { let obj = {}; let newArray = []; for(let i = 0; i < arr.length; i++) { if(!obj.hasOwnProperty(arr[i])) { obj[arr[i]] = i; newArray.push(arr[i]); } } return newArray } console.log(arrRepeat([1,2,1,3,5,‘哈‘,‘哈‘,3,6,‘q‘,‘a‘,‘q‘,‘a‘])) //[1, 2, 3, 5, "哈", 6, "q", "a"]
方法二:利用ES6的set
Set数据结构,它类似于数组,其成员的值都是唯一的。
利用Array.from将Set结构转换成数组
function dedupe(array){ return Array.from(new Set(array)); } dedupe([1,1,2,3]) //[1,2,3]
拓展运算符(...)内部使用for...of循环
let arr = [1,2,3,3]; let resultarr = [...new Set(arr)]; console.log(resultarr); //[1,2,3]
方法三: 双循环
双层循环,外层循环元素,内层循环时比较值
如果有相同的值则跳过,不相同则push进数组
function arrRepeat(arr){ let result = [], i, j, len = arr.length; for(i = 0; i < len; i++){ for(j = i + 1; j < len; j++){ if(arr[i] === arr[j]){ j = ++i; } } result.push(arr[i]); } return result; } console.log(arrRepeat([1,2,1,3,5,‘哈‘,‘哈‘,3,6,‘q‘,‘a‘,‘q‘,‘a‘])) // [2, 1, 5, "哈", 3, 6, "q", "a"]
以上是关于数组去重的方法的主要内容,如果未能解决你的问题,请参考以下文章