1 双层for循环
var arr=[1,2,3,3,2,'hello','hello'];
// 1.双层for循环
function unique(arr){
// 第一层for循环控制第一个数
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--;
}
}
}
}
unique(arr);
console.log(arr);//splice修改原数组
2.indexOf/lastindexOf()
//2.indexOf()
var arr=[1,2,3,3,2,'hello','hello'];
function unique(arr){
let newArr=[];
for(let i=0;i<arr.length;i++){
if(newArr.lastIndexOf(arr[i])===-1){
newArr.push(arr[i])
}
}
return newArr
}
console.log(unique(arr));
3.includs()
//4.includes参数:想要查找的数组元素 返回值:false/true
var arr=[1,2,3,4];
console.log(arr.includes(6));
var arr=[1,2,3,3,2,'hello','hello'];
function unique(arr){
let newArr=[];
for(let i=0;i<arr.length;i++){
if(!newArr.includes(arr[i])){
newArr.push(arr[i])
}
}
return newArr
}
console.log(unique(arr));
4.用forEach+indexOf
//用forEach+indexOf
var arr=[1,2,3,3,2,'hello','hello'];
function unique(arr){
let newArr=[];
arr.forEach(function(item){
if(newArr.indexOf(item)===-1){
newArr.push(item)
}
})
return newArr;
}
console.log(unique(arr));
5. 用filter+indexOf/includes
//用filter+indexOf/includes
var arr=[1,2,3,3,2,'hello','hello'];
function unique(arr){
let newArr=[];
return arr.filter(function(item){
return newArr.includes(item)?"":newArr.push(item)
})
return newArr;
}
console.log(unique(arr));
6. 用set 去重,成员是唯一的
//set去重 成员是唯一的
var arr=[1,2,3,3,2,'hello','hello'];
let set=new Set(arr);
console.log(set);
console.log(Array.from(set));
console.log([...set]);
map
var arr=[
{
id:1,
name:"zhangsan"
},{
id:2,
name:"lisi"
},{
id:3,
name:"wangwu"
}
];
var res=arr.map(function(item){
return item.name
});
console.log(res);