JS数组去重的⽅法及原理(全)
前端遇到最多的⽆⾮就是循环,判断,处理后台返回的数据了,那么今天介绍⼀下数组去重的⼏种常⽤⽅法。
⼀.ES6语法,new Set()⽅法去重
举个栗⼦
let arr = [a,b,c,c,d];
let set = new Set(arr);
let newArr = Array.from(set);
最后得出结果newArr=[a,b,c,d]
这个是⽬前最简单的去重⽅法,但是这个⽅法不⽀持对象⽅法,可以⽀持⼀些简单的数据格式去重效率还是很快的,如果是复杂数据格式建议⽤⼀下⼀些⽅法。
⼆.定义⼀个去重⽅法,直接调⽤。
新建⼀个数组,遍历传⼊数组,值不在新数组就push进该新数组中
function setarr(array){
var newarr = []; ⼀个新的临时数组js数组方法总结
for(var i = 0; i < array.length; i++){
if(newarr.indexOf(array[i]) == -1){
newarr.push(array[i]);
}
}
return newarr;
}
var newArray = [1,2,2,3];
console.log(setarr(newArray));// [1, 2, 3]
这个⽅法可以处理简单数据也可处理复杂数据
三.利⽤数组原型对象splice ⽅法加上双重for循环
function unique(arr) {
var i,j,len = arr.length;
for (i = 0; i < len; i++) {
for (j = i + 1; j < len; j++) {
if (arr[i] == arr[j]) {
arr.splice(j, 1);
len–;
j–;
}
}
}
return arr;
}
console.log(unique([1, 1, 2, 3]))//[1,2,3]
四.如果遇到两个数组⽐对去重的话我们可以⽤concat()⽅法或者万能运算符…先合并数组。
concat() ⽅法将传⼊的数组或⾮数组值与原数组合并,组成⼀个新的数组并返回。该⽅法会产⽣⼀个新的数组。
…⽅法可以直接拼接两个数组。
然后在调⽤上⾯任何⼀个⽅法即可实现数组去重。
总结:
不管什么⽅法,我们不难发现,其实原理都是差不多,都是循环加判断实现,个⼈觉得还是⾃⼰封装的去重⽅法要好⽤很多,可以处理各种复杂数据,但是别⼈封装的⽅法⼤部分只⽀持⼀些简单的数据去重,所以建议⼤家没事可以⾃⼰试着多封装⽅法,好⽤的可以存个档,⽤的时候直接复制会⽅便很多,⽹上⽅法太多了,起来也很⿇烦,好啦,今天的分享就这些,,希望能给你带来帮助!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。