陣列去重與陣列扁平化

2022-08-09 22:39:24 字數 1616 閱讀 4022

一、陣列去重

(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 only(arr)

else

},)}

(5)lastindexof() 

function only(arr)

})return

res;

}

二、陣列扁平化處理可以用reduce

例:實現乙個flatten方法,使得輸入乙個陣列,該陣列裡面的元素也可以是陣列,該方法會輸出乙個扁平化的陣列。

arr=[[1, 2, 2], [3, 4, 5, 5], [6, 7, 8, 9, [11, 12, [12, 13, [14]]]], 10];

console.log([1,2,2,3,4,5,5,6,7,8,9,11,12,12,13,14,10]);

(1)遞迴

function flatter(arr)

else

})return

res;

}

(2)reduce()

function flatten(arr),);

}

(3)tostring()+spilt()+parseint()

呼叫陣列的tostring()方法,將陣列變成字串,然後再用split()分割還原成陣列

function flatten(arr))

}function flatten(arr))// 用join()方法也可以轉成字串

}

缺點:只適用於陣列元素均為數字的情況。

(4)擴充套件運算子

es6的擴充套件運算子能將二維陣列變為一維。

[ ].concat(...[1,2,3,[4,5]])——>[1,2,3,4,5]

arr.some()只要有乙個符合條件就返回true,所以迴圈遍歷判斷元素是否包含陣列,如果有就使用一次擴充套件運算子。

function flatten(arr) 

return

arr;

}

陣列去重 扁平化

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

js陣列去重與去扁平化

陣列去重 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方法實現 es...

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

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