美文网首页
数组扁平化的几种方法

数组扁平化的几种方法

作者: AAA前端 | 来源:发表于2021-07-08 14:20 被阅读0次
[1, [2, 3, [4, 5]]]  ------>    [1, 2, 3, 4, 5]
  1. 使用reduce方法递归实现
function flatten(list){
    return list.reduce((list,item)=>{
      return list.concat(Array.isArray(item) ? flatten(item):  item);
    },[])
  }
  1. 使用toString() 和map 方法

[1, [2, 3, [4, 5]]].toString() => '1,2,3,4,5'
然后按逗号分隔为数组 => ['1', '2', '3', '4', '5']
再把数组中每项字符串转换为数字

function flatten(list){
  return list.toString().split(',').map(item=>Number(item))
}
  1. join()与map方法
    与 toString()方法一样 join也可以把数组转换为一维字符串
function flatten(list){
  return list.join().split(',').map(item=>Number(item))
}
  1. map方法递归

function flatten(arr){
  var list =  []
  arr.map(item=>{
    if(Array.isArray(item)){
      list = list.concat(flatten(item))
    } else {
      list.push(item)
    }
  })
  return list
}
  1. es6的扩展运算符能将二维数组变为一维
    [...[1,2,[4]]] => [1,2,[4]]
function flatten(arr) {
    while(arr.some(item=>Array.isArray(item))) {
        arr = [].concat(...arr);
    }
    return arr;
}
  1. flat(Infinity)
arr.flat(Infinity)
  1. 正则
JSON.stringify(arr).replace(/[\[|\]]/g, '').split(',').map(item=>Number(item))

参考:https://www.cnblogs.com/chenhuichao/p/13564682.html

相关文章

  • JS 数组扁平化的5种方式

    什么是数组扁平化 数组扁平化是指将一个多维数组变为一维数组 数据准备 实现方法一 实现方法二 实现方法三 实现方法...

  • 用JavaScript实现的5个常见函数

    数组扁平化 数组扁平化有很多方法,但最终最好的方法就是递归,实现一个指定深度的扁平化方法,这样基本的套路都会了解。...

  • js小算法

    1、数组扁平化 数组扁平化是指将一个多维数组变为一个一维数组 方法1:使用flat() 方法2:利用正则,但数据类...

  • 扁平化数组的几种方法

    1.递归 test: 2.toString 如果数组的元素都是数字,那么我们可以考虑使用 toString 方法,...

  • 扁平化数组的几种方法

    一、扁平化的概念 扁平化管理是企业为解决层级结构的组织形式在现代环境下面临的难题而实施的一种管理模式。当企业规模扩...

  • 数组扁平化的几种方法

    使用reduce方法递归实现 使用toString() 和map 方法 [1, [2, 3, [4, 5]]].t...

  • 封装常用数组操作函数

    1. 数组扁平化 方法一 : 递归迭代数组 方法二 : 通过js原生 falt方法展开数组 方法三 通过正则...

  • 前端手写算法题

    1、深拷贝deepCopy 2、对象扁平化 3、数组扁平化 4、手写Promise 5、promise.all方法...

  • 数组扁平化 Flat() 方法的原理

    数组扁平化:就是讲多维数组转换为一维数组常用的方法有:flat()、reduce、toString & spl、j...

  • JS算法题总结

    1. 对象深克隆 2. 数组去重 方法一: 方法二: 3. 数组扁平化 方法一: 方法二: 4. 冒泡排序

网友评论

      本文标题:数组扁平化的几种方法

      本文链接:https://www.haomeiwen.com/subject/gbftpltx.html