js数组合并、去重、降维
1.合并
1.1使用concat()进行合并数组
function get_concat(collection_a, collection_b) {
return collection_a.concat(collection_b)
}
1.2使用…(扩展运算符)进行合并数组
function get_concat(collection_a, collection_b) {
return [...collection_a,...collection_b]
}
2.去重
2.1使用for
function get_union(array) {
let temp = []
for (let i = 0; i < array.length; i++) {
if (temp.indexOf(array[i]) == -1) {
temp.push(array[i])
}
}
return temp
}
2.2使用扩展运算符、Set
function get_union(collection) {
return [...new Set(collection)]
}
思路是array=> Set => array
- array=> Set
new Set(array) - 第二步Set => array
[…Set]
ps:ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。
有点数学中集合的互异性的意思:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次。
3.降维
降2维数组降到1维,使用flat()
function double_to_one(collection) {
return collection.flat();
}
3.1 flat() 方法
flat() 方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回。
语法
var newArray = arr.flat([depth])
参数
depth 可选
指定要提取嵌套数组的结构深度,默认值为 1。
返回值
一个包含将数组与子数组中所有元素的新数组。