首页 > 编程语言 > 详细

js 数组扁平化

时间:2020-09-25 09:53:25      阅读:44      评论:0      收藏:0      [点我收藏+]

意思就是:将一个多维数组变为一个一维数组

例子:const arr = [1, [2, [3, [4, 5]]], 6];

结果:[1,2,3,4,5,6]

 

第一种:使用flat()  Infinity 作为深度,展开任意深度的嵌套数组

arr.flat(Infinity)

 

第二种:reduce

const flatten = arr => {
  return arr.reduce((pre, cur) => {
    return pre.concat(Array.isArray(cur) ? flatten(cur) : cur);
  }, [])
}
flatten(arr);
 
第三种:函数递归
const res = [];
const fn = arr => {
  for (let i = 0; i < arr.length; i++) {
    if (Array.isArray(arr[i])) {
      fn(arr[i]);
    } else {
      res.push(arr[i]);
     }
  }
}
fn(arr);
 
之后的几种方法查的。。。
第四种:利用正则
const res = JSON.stringify(arr).replace(/\[|\]/g, ‘‘).split(‘,‘);    //但数据类型都会变为字符串
 
第五种:正则改良版本
const res = JSON.parse(‘[‘ + JSON.stringify(arr).replace(/\[|\]/g, ‘‘) + ‘]‘);

js 数组扁平化

原文:https://www.cnblogs.com/wpTing/p/13728041.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!