方法很多,在这里简单介绍一种:
(1)for循环套用cancat方法,将一个二级数组的降维成一级数组,代码如下:
let years = [
["2018", "2014"],
[
"2021",
"2020",
"2019",
"2018",
"2017",
"2016",
"2015",
"2014",
"2013",
"2012",
"2009"
],
[],
[]
];
let years1 = [];
// concat()合并多个数组
for (let i = 0; i < years.length; i++) {
years1 = years1.concat(years[i]);
}
console.log(years1) // ["2018", "2014", "2021", "2020", "2019", "2018", "2017", "2016", "2015", "2014", "2013", "2012", "2009"]
(2)接下来就是去重和排序,用ES6中的方法
注意 Array.from()和new Set()必须同时使用,因为用了new Set()之后,数组会变成一个对象,Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。
years1 = Array.from(new Set(years1));
处理之后的结果长这样:[“2018”, “2014”, “2021”, “2020”, “2019”, “2017”, “2016”, “2015”, “2013”, “2012”, “2009”]
(3)最后就是排序,非常简单,用js中数组的排序方法sort()就可以:
years1 = years1.sort()
最终结果:[“2009”, “2012”, “2013”, “2014”, “2015”, “2016”, “2017”, “2018”, “2019”, “2020”, “2021”]。
这一步也可以直接放在第二步里,直接写成
years1 = Array.from(new Set(years1)).sort();
希望对您有帮助。