方法一:空对象记录法
声明一个空对象,key用来存储变量名,value用来表示变量是否已经存在,如果不存在则push进新的数组。
var arr = [1,1,2,2,3,3];
var obj={ };
var arr2=[];
for(var i=0;i<arr.length;i++){
let item=arr[i];
if(!obj[item]){
obj[item]=true;
arr2.push(item);
}
}
console.log(arr2);
方法二:利用indexOf+filter方法
数组的indexOf()方法:
- 懒 – 永远只找第一个
- 蠢 – 默认只能从位置0开始
因此可以判断首次出现的索引和当前元素的索引是否一样 ,不一样说明已经出现过一次,一样说明是第一次出现。
var arr = [1,2,3,4,5,3,2,1];
var arr2= arr.filter(function(currentValue,index,temp){
return temp.indexOf(currentValue) === index;
});
console.log(arr2);
方法三:数组的from方法
var arr = [1,2,3,3,2,1,3,5,4,11,1,1]
function newArr(arr){
return Array.from(new Set(arr))
}
console.log(newArr(arr))