1.扁平化n維數(shù)組
1.終極篇
Array.flat(n)是ES10扁平數(shù)組的API泉孩,n表示維度俏讹,n值為Infinity時維度為無限大篱昔。
[1,[2,3]].flat(2) //[1,2,3]
[1,[2,3,[4,5]].flat(3) //[1,2,3,4,5]
[1,[2,3,[4,5,[...]]]].flat(Infinity) //[1,2,3,4,5...n]
2.開始篇
實質(zhì)是利用遞歸和數(shù)組合并方法以及擴展運算符實現(xiàn)扁平
function flattern(arr){
while(arr.some(item=>Array.isArray(item))){
arr=[].concat(...arr);
}
return arr;
}
flattern([1,[2,3]]) //[1,2,3]
flattern([1,[2,3,[4,5]]]) //[1,2,3,4,5]
2.去重
1.終極篇
set是ES6新出來的一種定義不重復數(shù)組的數(shù)據(jù)類型
Array.from是將類數(shù)組轉(zhuǎn)化為數(shù)組
...是擴展運算符页衙,將set里面的值轉(zhuǎn)化為字符串
Array.from(new Set([1,2,3,3,4,4]))
[...new Set([1,2,3,3,4,4])]
3.排序
1.終極篇
[1,2,3].sort();//[1,2,3]默認是升序
[1,2,3,4].sort((a,b)=>b-a);
4.最大值
1.終極篇
Math.max()是Math對象內(nèi)置的方法兄春,參數(shù)是字符串基协。
reduce是ES5的數(shù)組API遏弱,參數(shù)有函數(shù)和初始默認值浪默。
函數(shù)有4個參數(shù):
pre:上一次的返回值
cur:當前值
curIndex:當前值索引
arr:當前數(shù)組
Math.max(...[1,2,3,4]) //4
Math.max.apply(this,[1,2,3,4])//4
[1,2,3,4].reduce((prev,cur,curIndex,arr)=>{
return Math.max(prev,cur)
},0) //4
5.求和
1.終極篇
[1,2,3,4].reduce(function(pre,cur){
return pre+cur;
},0) //10
6.合并
[1,2,3,4].concat([5,6]) //[1,2,3,4,5,6]
[...[1,2,3,4],...[5,6]] //[1,2,3,4,5,6]
[1,2,3,4].push.apply([1,2,3,4],[5,6]) //[1,2,3,4,5,6]