js数组合并、去重、降维(ES6:扩展运算符、Set)

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

  1. array=> Set
    new Set(array)
  2. 第二步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。
返回值
一个包含将数组与子数组中所有元素的新数组

猜你喜欢

转载自blog.csdn.net/jojo1001/article/details/121355968