
对于前端的开发人员来说,数据与数组的使用已经成为日常工作的一部分。而对于大量的数组重复问题,我们需要对数组进行去重。具有函数优先的轻量级解释性语言js也会面临着数组重复的情况。本文小编整理总结了js数组去重的三种方法:1、双层for循环嵌套,使用splice去重;2、建新数组,使用indexOf去重;3、ES6中使用Set去重。
方法一:双层for循环嵌套,使用splice去重
优点:兼容性好
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <p style= "line-height: normal;" > function uniqueArr(arr){
if (!Array.isArray(arr)){
alert( "type error" );
return ;
}
for (let i=0;i<arr.length;i++){
for (let j=i+1;j<arr.length;j++){
if (arr[i] === arr[j]){
arr.splice(j,1);
j--;
}
}
}
return arr;
}<br></p>
|
方法二:建新数组,使用indexOf去重
优点:简化一层循环
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <p style= "line-height: normal;" > function unique(arr){
var res = [];
for ( var i = 0, len = arr.length; i < len; i++) {
var cur = arr[i];
if (res.indexOf(cur) === -1) {
res.push(cur);
}
}
return res;
} <br></p>
|
方法三:ES6中使用Set去重
Set函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化。
优点:成员的值都是唯一的,没有重复的值。
1 2 3 4 5 6 7 8 9 10 11 12 13 | function uniqueArr(arr){
if (!Array.isArray(arr)){
alert( "type error" );
return ;
}
return [... new Set(arr)];
}
|
以上就是小编整理总结了js数组去重的三种方法,大家可以根据具体情况选择合适的方法哟~