js陣列去重與去扁平化

2021-08-16 05:16:35 字數 1487 閱讀 8081

陣列去重

var arr = [1, 43, 4, 3, 2, 4, 3];

// 去重後

arr = [1, 43, 4, 3, 2]

傳統方法,for迴圈實現

function

dedupe

(arr)

}return rets;

}// 方法二: foreach方法實現

function

dedupe

(arr)

});return rets;

}

es6方法實現

// es6提供的新的資料結構set,類似陣列,但是成員的值都是唯一的,沒有重複的值。

function

dedupe

(arr)

複雜資料結構的陣列去重

[1,2,,3,2,,[1,2],[1,2]]

陣列中的元素包含物件和陣列

function

unique

(arr) ;

const res = ;

for (let i = 0; i < arr.length; i++)

}return res;

}unique([1,2,,3,2,,[1,2],[1,2]]);

// 1, 2, , 3, [1, 2]

陣列去扁平化

陣列的扁平化,就是將乙個巢狀多層的陣列array(巢狀可以是任何層數)轉換為只有一層的陣列

var arr = [1, 2, 3, [4, 3, [2, 7], 2], 5, [5, 9, 10], 7];

// 去扁平化後

arr = [1, 2, 3, 4, 3, 2, 7, 2, 5, 5, 9, 10, 7];

(1)迴圈遞迴實現

// for迴圈,如果子元素還是陣列,則遞迴呼叫該方法

function

flatten

(arr) else

}return rets;

}// 使用foreach

function

flatten

(arr) else

});return rets;

}

(2)使用reduce簡化**

function

flatten

(arr) , )

}

(3)如果陣列元素都為數字,則可以使用tostring方法

function

flatten

(arr) );

}

陣列去重 扁平化

arr.flat 可以在flat新增可選值infinity arr.tostring.split array.from new set arr new set arr 先扁平化在來去重arr.map number 任何定義了遍歷器 iterator 介面的物件,都可以用擴充套件運算子轉為真正的陣列。...

陣列去重與陣列扁平化

一 陣列去重 1 indexof function only arr return res 2 set結構 var set new set arr array.from set 3 filter過濾 function only arr return res 4 reduce function onl...

巢狀陣列扁平化和陣列去重

1.利用 array.prototype.flat function flattendeep arr 2.利用 reduce 和 concat function flattendeep arr 1.利用 es6 新資料型別 set set類似於陣列,但是成員的值都是唯一的,沒有重複的值。functi...