陣列去重
var arr = [1, 43, 4, 3, 2, 4, 3];傳統方法,for迴圈實現// 去重後
arr = [1, 43, 4, 3, 2]
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];(1)迴圈遞迴實現// 去扁平化後
arr = [1, 2, 3, 4, 3, 2, 7, 2, 5, 5, 9, 10, 7];
// 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...