js實現數組降維

數組字符串化

  • 首先使用join把數組轉成字符串
  • 而後再使用split切割成數組

缺點:會把數字轉成字符串javascript

var arr = [3, 4, 5, 6, [7, 8, [9, 10, 2, [3, 4, 5, 2]]]]
arr = arr.join(',').split(',')
console.log(rr)

使用遞歸實現降維

var arr = [3, 4, 5, 6, [7, 8, [9, 10, 2, [3, 4, 5, 2]]]]
let newArr = []
function flat(arr) {
    arr.forEach(function (item) {
        item instanceof Array ? flat(item) : newArr.push(item)
    })
}
flat(arr)
console.log(newArr)

使用reduce實現降維

function flat(arr) {
    let newArr = arr.reduce(
      (start, current) =>
        Array.isArray(current)
          ? start.concat(...flat(current))
          : start.concat(current),
      []
    )
    return newArr
}
let newArr = flat(arr)
console.log(newArr)

使用ES6的flat方法降維

var arr = [3, 4, 5, 6, [7, 8, [9, 10, 2, [3, 4, 5, 2]]]]
const newArr = arr.flat(Infinity);
console.log(newArr);
相關文章
相關標籤/搜索