方法一:ES6 new set加Array.from
let Arr=[1,2,3,3,4,4,5,5,6,6,6,6]
function getUniqueArray(arr){
var result =Array.from(new Set(arr))
console.log(result)
}
getUniqueArray(Arr)
方法二:new set 展开运算符方法
console.log(result)
function getUniqueArray(arr){
var result =[...new Set(arr)]
console.log('new set 展开运算符方法',result)
}
getUniqueArray(Arr)
方法三:forEach
function getUniqueArray(arr){
var result =[]
arr.forEach(item => {
if(result.indexOf(item)==-1){
result.push(item);
}
});
console.log('forEach',result)
}
getUniqueArray(Arr)
方法四:filter
function getUniqueArray(arr){
var result =arr.filter((item,index)=>{
return arr.indexOf(item)==index;
})
console.log('filter',result)
}
getUniqueArray(Arr)
方法五:reduce
function getUniqueArray(arr){
var result =arr.reduce((pre,item)=>{
return pre.includes(item)?pre:[...pre,item]
},[])
console.log('reduce',result)
}
getUniqueArray(Arr)
方法六:对象的key值唯一
function getUniqueArray(arr){
var result ={}
arr.forEach((item,index) => {
result[arr[index]]='sss';
});
result = Object.keys(result).map(item=>~~item);
console.log('对象的key值',result)
}
getUniqueArray(Arr)
方法七:最原始for循环
function getUniqueArray(arr){
var result =[];
for(let i=0;i<arr.length;i++){
for(let j=i+1;j<arr.length;j++){
if(arr[i]==arr[j]){
i++
}
}
result.push(arr[i])
}
console.log('最原始for循环',result)
}
getUniqueArray(Arr)
方法八:排序后push
function getUniqueArray(arr){
var result =[];
var temp =arr.sort();
for(let i=0;i<temp.length;i++){
if(temp[i]!=temp[i+1]){
result.push(arr[i])
}
}
console.log('排序后push',result)
}
getUniqueArray(Arr)