数组去重
1 ES6 Set+扩展运算符
Array.prototype.unique=function (arr){
return [...new Set(arr)];
}
console.log(Array.prototype.unique(arr));
2 ES6 indexOf+新数组
function qu1(arr){
let result=[];
for(let i=0;i<arr.length;i++){
if(result.indexOf(arr[i])==-1){
result.push(arr[i]);
}
}
return result;
}
console.log(qu1(arr));
3 ES6 includes+新数组
function qu2(arr){
let result=[];
for(let i=0;i<arr.length;i++){
if(result.includes(arr[i])===false){
result.push(arr[i]);
}
}
return result;
}
console.log(qu2(arr));
4 原生js的for循环+splice
function qu3(arr){
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;
}
console.log(qu3(arr));
5 sort+reduce
let arr1=[1,3,21,5,21,31,1,3,4,5,7];
let test=arr1.sort(function (a,b){
return a-b;
})
let result=test.reduce(function (a,b){
a[b]=(a[b]+1)||1
return a;
})
console.log(result);
扩展
改变数组的方法:
(1)pop() push()
(2) shift() unshift()
(3)sort()
(4)reverse()
(5)splice()