普通二维数组

// 第一种方法 concat
fattenOnce(arr){
    return [].concat(...arr)
}

// 第二种方法 toString 数据类型会被改变成字符串
fattenOnce(arr){
  return arr.toString().split(',')
}

// 第三种方法 reduce 
fattenOnce(arr){
  return arr.reduce((newArray, currentValue, currentIndex, arr) => newArray.concat(...currentValue),[])
}

多维数组展平 递归

// 第一种方法 concat
fattenOnce(arr){
  return [].concat(...arr.map(item => Array.isArray(item) ? fattenOnce(item) : item))
}

// 第二种方法 toString 数据类型会被改变成字符串
fattenOnce(arr){
  return arr.toString().split(',')
}

// 第三种方法 reduce 
fattenOnce(arr){
  return arr.reduce((newArray, currentValue) => Array.isArray(currentValue) ? fattenOnce(currentValue) : currentValue,[])
}

// 函数生成器
function* flattenOnce(arr) {
  for(let i = 0;i < arr.length; i++) {
    if(Array.isArray(arr[i])) {
      yield * flatten(arr[i])
    } else {
      yield arr[i]
    }
  }
}

Thales
70 声望1 粉丝