数组去重的几个常用方法
2021-01-15 本文已影响0人
一只章鱼哥
方法一:利用Set方法来处理
function unique0(arr){
return Array.from(new Set(arr)
}
方法二:循环中使用splice去重
function uniquel(arr) {
for (var i = 0; i < arr.length;i++){
for (var j = i + 1; j< arr.length;j++) {
if (arr[i] == arr[j]){
arr.splice(j,1);
j--;
}
}
}
return arr;
}
方法三: 利用indexOf方法
function unique2(arr) {
if(!Array.isArray(arr)){
return
}
var array = []
for(var i = O;i<arr.length;i++){
if(array.indexOf(arr[i]) === -1) {array.push(arr[i])
}
}
return array
}
方法四,利用sort提前处理
function unique3(arr) {
if(!Array.isArray(arr)){
return;
}
arr = arr.sort()
var array = [arr[0]]
for(var i = 1; i< arr.length;i++) {
if(arr[i] !== arr[i-1]) {
array.push(arr[i])
}
}
return array
}
方法5:利用includes
function unique(arr) {
if (!Array.isArray(arr)) {
console.log('type error!')
return
}
var array =[];
for(var i = 0; i < arr.length; i++) {
if( !array.includes( arr[i]) ) {//includes 检测数组是否有某个值
array.push(arr[i]);
}
}
return array
}