数组扁平化flat方法的多种实现

2023-10-29

let arr = [[1], [2, 3], [4, 5, 6, [7, 8, [9, 10, [11]]]], 12];

// 1.flat

console.log(arr.flat(Infinity));

// 2.toString

console.log(

    arr

        .toString()

        .split(",")

        .map((item) => Number(item))

);

// 3.stringify

console.log(

    JSON.stringify(arr)

        .replace(/\[|\]/g, "")

        .split(",")

        .map((item) => Number(item))

);

// 4.concat

while (arr.some((item) => Array.isArray(item))) {

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

}

console.log(arr);

// 5.递归

Array.prototype.myFlat = function () {

    let result = [];

    let _this = this;

    function _flat(arr) {

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

            let item = arr[i];

            if (Array.isArray(item)) {

                _flat(item);

            } else {

                result.push(item);

            }

        }

    }

    _flat(_this);

    return result;

};

console.log(arr.myFlat());

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数组扁平化flat方法的多种实现 的相关文章

随机推荐

  • 神经网络学习小记录51——Keras搭建孪生神经网络(Siamese network)比较图片相似性

    神经网络学习小记录51 Keras搭建孪生神经网络 Siamese network 比较图片相似性 学习前言 什么是孪生神经网络 代码下载 孪生神经网络的实现思路 一 预测部分 1 主干网络介绍 2 比较网络 二 训练部分 1 数据集的格式
  • ubuntu 16.04 修改MAC地址何IP地址

    永久修改MAC地址 方法一 1 编辑 etc init d rc local 文件 sudo gedit etc init d rc local 2 在此配置文件的最后面加上如 Ubuntu 修改网卡的MAC地址 的修改命令 注 16 04
  • 实验:基本的系统安全控制 实验环境 某公司新增了一台企业级服务器,已安装运行RHEL 6操作系统,由系统运维部、软件开发部、技术服务部共同使用。由于用户数量众多,且使用时间不固定,要求针对账号和

    实验 基本的系统安全控制 实验环境 某公司新增了一台企业级服务器 已安装运行RHEL 6操作系统 由系统运维部 软件开发部 技术服务部共同使用 由于用户数量众多 且使用时间不固定 要求针对账号和登录过程采取基本的安全措施 需求描述 允许用户
  • Android解决EditeText内容右对齐时光标位于hint之前的问题

    当EditText的gravity设置为end或者right时 在某些手机上输入框的光标位置会显示在hint文字之前 如下图 如果我们想光标的位置在hint文字后面 即最右边 解决的方法有 方法一 比较省事的做法 设置EditText的te
  • thinkphp5 访问不了多模块

    thinkphp5 访问不了多模块 只能访问默认模块 可能是nginx文件配置问题 更改nginx conf文件 在server段内添加如下代码段 location try files uri uri args if e request f
  • python火灾检测

    火灾检测是一项用于实时火灾探测和自定义图像的人工智能项目 这是火检测的第一个版本 它包含42幅测试图像的数据集 用于训练100幅图像 安装 如果您有一个NVIDIA GPU 那么您可以安装tensorflow gpu包裹 它会让事情发展得更
  • C# EF Newtonsoft.Json.JsonSerializationException 序列化出现异常

    在对EF EntityFramework 查询的数据序列化出现的问题 问题记录 Newtonsoft Json JsonSerializationException 序列化出现异常 Self referencing loop detecte
  • 二叉树面试题总结(Java)

    本文参考博客 http www jianshu com p 0190985635eb 先上二叉树的数据结构 class TreeNode int val 左孩子 TreeNode left 右孩子 TreeNode right 二叉树的题目
  • java自定义button类控件

    上面是做完后的效果 第一次用java来做自定义继承button类控件 如图看到的其实就只有一个经改写的button控件 style 1 2 3 4 是button内部的几个小label而已 不过中间的滑动效果做得不太好 滑动时有闪烁 还请高
  • 哲理故事300篇 下

    哲理故事300篇 上 http blog csdn net andylin02 archive 2006 08 23 1109314 aspx 哲理故事300篇 中 http blog csdn net andylin02 archive
  • 浅谈类和对象

    一 定义 类 类是一个模板 是抽象的 类可以用于创建对象 类是对具有相同特征和作用的对象的抽象 eg 学生是一个抽象的类 具体实现有小学生 中学生 大学生 对象 任何一个具体的事物或者物体就是一个对象 对象是对类的具体实现 eg 我的电脑
  • lr中需要注意的点--安装后打不开ie需要设置的地方

    前提 Loadrunner11仅支持ie9向下版本 若安装了ie10则需要在查看一安装的更新中卸载 1 设置ie浏览器为默认浏览器 2 计算机 gt 属性 gt 高级系统管理 gt 性能 gt 设置 过程中会提示重启 3 tools gt
  • spring 和springboot 整合rabbitmq

    文章目录 spring springboot整合 rabbitmq 4 1 spring 整合rabbitmq 4 2 springboot 整合rabbitmq spring springboot整合 rabbitmq rabbitmq
  • Java文档注释

    Java文档注释 Doc umentation Comments 注意不要将注解 Annotation 与注释 Comments 混淆 Java的有三种注释 1 单行注释 注释内容 2 多行注释 注释内容 3 文档注释 注释内容 Java文
  • vue z-index层级显示问题

    一个单页面 顶部有fixed的nav 当向上滑动页面时 发现nav里有的组件被下放的组件遮盖 第一时间明白这时需要修改层级设置 将下方的组件z index设为 1 nav的组件z index调高 发现还是有各种遮盖的问题 然后花了点时间找资
  • linux查看某个应用占用多少线程

    以tomcat为例 获取tomcat进程pid ps ef grep tomcat 10090 统计该tomcat进程内的线程个数 ps Lf 10090 wc l 数量就是该tomcat启动了多少线程
  • java异常(机制和捕捉(常见异常类))详解 +练习题

    Java 中的异常处理机制 1 什么是异常 异常 程序在运行过程中产生的不正常情况 程序在运行的时候 发生了一些不被预期的事件 从而没有按照我们编写的代码执行 这就是异常 异常是Java中的错误 但是并不是所有的错误都是异常 比如说 你在定
  • zookeeper的动态扩容

    附属意义的扩容 扩容的新增节点为观察者observer 1 观察者概念 a 在zookeeper引入此新的zookeeper节点类型为observer 是为了帮助处理投票成本随着追随者增加而增加的问题并且进一步完善了zookeeper的可扩
  • 研一寒假C++复习笔记--运算符重载实例

    目录 1 运算符重载 2 加号运算符重载 3 左移运算符重载 lt lt 4 递增运算符重载 5 赋值运算符重载 6 关系运算符重载 7 函数调用运算符重载 1 运算符重载 对已有运算符重新进行定义 赋予其另一种功能 以适应不同的数据类型
  • 数组扁平化flat方法的多种实现

    let arr 1 2 3 4 5 6 7 8 9 10 11 12 1 flat console log arr flat Infinity 2 toString console log arr toString split map it