需求:多维数组=>一维数组

let ary = [1, [2, [3, [4, 5]]], 6];

let str = JSON.stringify(ary);

第0种处理:直接的调用

arr_flat = arr.flat(Infinity);

第一种处理

ary = str.replace(/(\[\]))/g, '').split(',');

第二种处理

str = str.replace(/(\[\]))/g, '');

str = '[' + str + ']';

ary = JSON.parse(str);

第三种处理:递归处理

let result = [];

let fn = function(ary) {

for(let i = 0; i < ary.length; i++) }{

let item = ary[i];

if (Array.isArray(ary[i])){

fn(item);

} else {

result.push(item);

}

}

}

第四种处理:用 reduce 实现数组的 flat 方法

function flatten(ary) {

return ary.reduce((pre, cur) => {

return pre.concat(Array.isArray(cur) ? flatten(cur) : cur);

})

}

let ary = [1, 2, [3, 4], [5, [6, 7]]]

console.log(ary.MyFlat(Infinity))

第五种处理:扩展运算符

while (ary.some(Array.isArray)) {

ary = [].concat(...ary);

}

这是一个比较实用而且很容易被问到的问题,欢迎大家交流补充。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

JAVA数组扁平化整合_JS数组扁平化(flat)方法总结详解相关推荐

  1. java中prepend的用法_jQuery中prepend()方法使用详解

    prepend()方法将指定元素插入匹配元素按内部的开头,其作用和prependTo()方法基本相同,只在语法上有差别,虽然说在语法形式上看基本相同. 下面介绍下语法结构: $(selector).p ...

  2. java steam说明_Java 8 Steam API map和flatMap方法使用详解

    一对多的提取内容用flatmap,一对一用map java 8 stream api 中有两个方法map和flatMap非常实用,应用场景也非常广泛,能极大提升编程效率.下面我们详细介绍一下这两个方法 ...

  3. Java中常见RuntimeException与其他异常表及Exception逻辑关系详解

    Java中常见RuntimeException与其他异常表及Exception逻辑关系详解 前言 常见`RuntimeException` 其他错误类型 `Error`类 `Exception`类 E ...

  4. Java的JVM运行时栈结构和方法调用详解

    详细介绍了Java 的JVM的运行时栈结构,以及和方法调用详解,包括解析调用和分派调用. JVM对于方法的执行是基于栈的,方法调用--入栈,方法调用完毕--出栈,了解JVM的运行时栈结构,有助于我们更 ...

  5. java调用webservice_笃学私教:Java开发网站架构演变过程-从单体应用到微服务架构详解...

    原标题:笃学私教:Java开发网站架构演变过程-从单体应用到微服务架构详解 Java开发网站架构演变过程,到目前为止,大致分为5个阶段,分别为单体架构.集群架构.分布式架构.SOA架构和微服务架构.下 ...

  6. SpringBoot2.x整合轻量级分布式定时任务ShedLock3.x的使用详解

    目录 前言 SpringBoot2.x整合轻量级分布式定时任务ShedLock3.x的使用详解 一.关于ShedLock 二.ShedLock的三个核心组件 三.ShedLock使用三步走 四.Spr ...

  7. java condition详解_Java使用Condition控制线程通信的方法实例详解

    Java使用Condition控制线程通信的方法实例详解 发布于 2020-4-20| 复制链接 摘记: 本文实例讲述了Java使用Condition控制线程通信的方法.分享给大家供大家参考,具体如下 ...

  8. java中北大学ppt总结+课后习题第四章(小宇特详解)

    java中北大学ppt总结+课后习题第四章(小宇特详解) 继承 子类与父类 继承是根据现有类创建新的类的机制,由继承而得到的新类称为子类(subclass)或派生类(derived class),被继 ...

  9. Java调用SMSLib用单口短信猫发送短信详解

    技术园地 当前位置:短信猫网站主页 > 技术园地 > [转载]Java调用SMSLib用单口短信猫发送短信详解 发布时间:2017/02/09 点击量:620 SMSLib是Apache的 ...

最新文章

  1. Codeforces Round #643 (Div. 2)题解
  2. python 文件和目录操作
  3. P1101 单词方阵
  4. SAP OData服务性能测量的几种工具和手段
  5. MySQL 中事务、事务隔离级别详解
  6. 我身边的手机应用开发者
  7. python 长度queue_python:常见的数据结构
  8. python 使用pexpect实现自动交互示例
  9. Android工程重新编译问题
  10. HijackThis日志细解【简明教程增强版】(六)
  11. Android系统源码分析--Context
  12. visual studio怎么用_自从用了敏捷,天天在开会?4大Scrum会议如何才能有意义?...
  13. Altium Designer禁止联网操作说明
  14. html 在行前显示黑点,Word里有些文字行前面有小黑点是怎么回事?
  15. 医学统计学第六版笔记
  16. linux服务器cpu飙高问题排查实践记录
  17. 欢迎使用Windows安装MySQL(安装版)教程,全网最细
  18. 视频压缩编码基本原理
  19. 王衠:爱游戏电视游戏平台将实现宽带支付
  20. matlab精华(转)

热门文章

  1. 什么是 SAP Fiori Tools
  2. SAP Spartacus Table cell显示数据类型的Component决定逻辑
  3. 有网友提问,关于本地XML转JSON的小工具
  4. 在Google Cloud platform上的Kubernetes集群部署HANA Express
  5. SAP UI5 initialization error
  6. 为什么Note.js 里面没有sap.ui.core.Control.extend()这样的代码,但是runtime有自动生成有
  7. Fiori navigation list scroll down后自动发OData请求取数据
  8. where is application controller bound to application main view
  9. CRM呼叫中心和社交媒体集成的UI错误信息显示机制
  10. KPI tile在launchpad里正常显示number,但是进不了detail view