一、數(shù)組去重
1闽撤、利用ES6 Set去重(ES6中最常用)
不考慮兼容性得哆,這種去重的方法代碼最少。這種方法還無法去掉“{}”空對象哟旗,后面的高階方法會添加去掉重復“{}”的方法贩据。
2栋操、利用for嵌套for,然后splice去重(ES5中最常用)
雙層循環(huán)饱亮,外層循環(huán)元素矾芙,內(nèi)層循環(huán)時比較值。值相同時近上,則刪去這個值蠕啄。
3、利用includes
4戈锻、利用hasOwnProperty
二歼跟、數(shù)組扁平化
????數(shù)組扁平化概念
????????數(shù)組扁平化是指將一個多維數(shù)組變?yōu)橐痪S數(shù)組,例如:[1, [2,3, [4,5]]]? ------>? ? [1,2,3,4,5]格遭。
? ? 代碼實現(xiàn)一下~
? ??????1. reduce
????????????遍歷數(shù)組每一項哈街,若值為數(shù)組則遞歸遍歷,否則concat拒迅。
2?骚秦、toString & split
調(diào)用數(shù)組的toString方法,將數(shù)組變?yōu)樽址缓笤儆胹plit分割還原為數(shù)組
3璧微、join & split
和上面的toString一樣作箍,join也可以將數(shù)組轉(zhuǎn)換為字符串
4、遞歸
遞歸的遍歷每一項前硫,若為數(shù)組則繼續(xù)遍歷胞得,否則concat
5、擴展運算符
es6的擴展運算符能將二維數(shù)組變?yōu)橐痪S
[].concat(...[1, 2, 3, [4, 5]]); // [1, 2, 3, 4, 5]
根據(jù)這個結(jié)果我們可以做一個遍歷屹电,若arr中含有數(shù)組則使用一次擴展運算符阶剑,直至沒有為止。