一、数组去重: 1.1)new set() + 扩展运算符
const dataArr = (arr) => [...new Set(arr)]
console.log(dataArr(["前端","js","html","js","css","html"])); // ['前端', 'js', 'html', 'css']
1.2) new set() + Array.from();
let arr = [2,2,4,3,4,1,3,2,7,5,];
let setArr = new Set(arr); //Set(7) {2,4,3,1 …}
let newArr= Arry.from(setArr) // [2,4,3,1,7,5]
2)forEach+indexOf(); filter()+indexOf()
function fn(arr){
let newArr = []
arr.forEach((val)=>{
if(newArr.indexOf(val) == -1){
newArr.push(val)
}
})
return newArr
}
function fn(arr) {
return arr.filter((item, index, arr) => arr.indexOf(item) === index)
}
3)for+ splice()
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)
}
}
}
二、简单排序 sort()
function fn(){
let newArr=[];
//arr.sort((a,b)=>{return b-a}); //降序
arr.sort((a,b)=>{return a-b}); //升序
//arr.reverse(); //颠倒数组顺序[1,2,3,4,5]——[5,4,3,2,1]
arr.forEach((v,i)=>{
if(v!==arr[i+1]){
newArr.push(v)
}
})
return newArr
}
三、数组扁平化: 1)arr.flat(Infinity)
2)toString()
var arr = [1,2,[3,4,5,[6,7,8],9],10,[11,12]];
var bb=arr.toString().split(',').map((v)=>{
return parseInt(v)
});
console.log(bb) // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
3)递归:
function fn(arr){
let arr1=[];
arr.forEach((v)=>{
if(v instanceof Array){
arr1=arr1.concat(fn(v))
}else{
arr1.push(v)
}
})
return arr1;
}
四、求交集、并集和差集:
let a = new Set([1, 2, 3]) ;
let b = new Set([2, 3, 4]);
//并集
let c = new Set([...a,...b]); //Set(4) {1, 2, 3, 4}
//交集
new Set([...a].filter(v => b.has(v))) // Set(2) {2, 3}
//差集
new Set([...a].filter(v => !b.has(v))) // Set(1) {1}
五、方法收集: 1)includes()——es7
let arr = [1, 2, 3, 4];
//es6
arr.includes(9) //false
arr.includes(4) //true
//es7