首页 > 其他分享 >为数组新增一个flat方法(浏览器不支持的话),可以将一个数组打平,并支持传入最深的层级数,得到打平对应层级的新数组

为数组新增一个flat方法(浏览器不支持的话),可以将一个数组打平,并支持传入最深的层级数,得到打平对应层级的新数组

时间:2022-12-29 18:32:50浏览次数:54  
标签:flat arr val 打平 dep 数组 Array

例如:[1, [2, 3, [4, 5, [6, 7], 8]], 9].flat(2)  得到 [1, 2, 3, 4, 5,[ 6, 7],8,9]


直接上代码:

Array.prototype.flat = function (dep = 1) {
return this.reduce((acc, val) => {
return acc.concat(Array.isArray(val) && dep > 0 ? val.flat(--dep) : Array.isArray(val) ? [val] : val)
}, [])
}
// 验证一下
let arr = [1, [2, 3, [4, 5, [6, 7], 8]], 9].flat(2)
console.log(arr, 'arr-leepoo')
```

为数组新增一个flat方法(浏览器不支持的话),可以将一个数组打平,并支持传入最深的层级数,得到打平对应层级的新数组_Java

标签:flat,arr,val,打平,dep,数组,Array
From: https://blog.51cto.com/u_15911090/5978705

相关文章

  • 第三章《数组与循环》第7节:break与continue关键字
    ​在实际开发过程中,并不是任何情况下都要让循环从始至终全部执行完毕,有时需要对循的执行进行一定程度的控制。Java语言中提供了break和continue两个关键字来控制循环的执行......
  • 二维数组、数组指针以及指针数组
     1.二维数组定义  格式:数据类型数组名[行][列];  示例:intbuff[3][5];  第一个[3]表示二维数组buff中有3个一位数组  第二个[5]表示每个一维数组中有5个......
  • 【维生素C语言】第四章 - 数组
     前言本章将对C语言的数组进行讲解,从一维数组开始讲起。已经学了三个章节了,所以本章还附加了三子棋和扫雷两个简单的小游戏,读者可以试着写一写,增加编程兴趣,提高模块化编程......
  • 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 targe
    1#include<stdio.h>2#include<stdlib.h>3#include<iostream>4usingnamespacestd;56int*twoSum(int*nums,intnumsSize,inttarget){//暴力遍......
  • LeetCode 删除排序数组中的重复项
    题目给你一个升序排列的数组nums,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。由于在某些语言中不能......
  • 数组与链表
    数组数组定义数组是一种基础的线性数据结构,它是用连续的一段内存空间,来存储相同数据类型数据的集合。线性数据结构是有限的,它是某类元素的集合并且记录着元素之间的一组......
  • day04 IDEA&数组
    第一部分:IDEA开发工具参见:IEDA的安装请参考文件夹PPT中的04_IDEA.ppt1.数组1.1数组介绍​ 数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。1.2......
  • PHP 数组
    数组能够在单独的变量名中存储一个或多个值。实例数组在单个变量中存储多个值:<?php$cars=array("porsche","BMW","Volvo");echo"Ilike".$cars[0].",".$c......
  • PHP 多维数组
    在本教程之前的章节中,我们已经知道数组是一种数/值对的简单列表。不过,有时您希望用一个以上的键存储值。可以用多维数组进行存储。PHP-多维数组多维数组指的是包......
  • 数组的使用
    数组的使用普通的For循环publicstaticvoidmain(String[]args){    int[]arrays={1,2,3,4,5};​    //打印全部的数组元素    for(int......