写在前面
此系列来源于开源项目:前端 100 问:能搞懂 80%的请把简历给我
为了备战 2021 春招
每天一题,督促自己
从多方面多角度总结答案,丰富知识
将数组扁平化并去除其中重复数据,最终得到一个升序且不重复的数组
正文回答
考点
数组扁平、去重、升序排列
几种解决思路
Array.from(new Set(arr.flat(Infinity))).sort((a, b) => {
return a - b;
});
// 此方法没有解决重复
arr
.toString()
.split(",")
.sort((a, b) => {
return a - b;
})
.map(Number);
// 扁平化
Array.prototype.flat = function () {
return [].concat(
...this.map((item) => (Array.isArray(item) ? item.flat() : [item]))
);
};
// 去重
Array.prototype.unique = function () {
return [...new Set(this)];
};
// 排序
const sort = (a, b) => a - b;
var old_arr = [
[1, 2, 2],
[3, 4, 5, 5],
[6, 7, 8, 9, [11, 12, [12, 13, [14]]]],
10,
];
// 数组拍平
var level_arr = old_arr.flat(4);
//数组去重
var Distinct = Array.from(new Set(level_arr));
// 排序
var sort = Distinct.sort((a, b) => a - b);