数组扁平化js(js实现数组扁平化输出)

技术js怎样实现数组的扁平化js怎样实现数组的扁平化,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。数组扁平化的方式什么是数组扁平化?数组扁平化:指将一个

如何实现js数组的扁平化,针对这个问题,本文详细介绍了相应的分析和解决方法,希望能帮助更多想要解决这个问题的朋友找到更简单更容易的方法。

数组扁平化的方式

什么是阵列扁平化?

数组扁平化:它指的是把多维数组转换成一维数组。

示例:展平以下数组。

constar=[1、[2、3、[4、5]]/////[1、2、3、4、5]

1.使用flat()

flat()方法是由ES10提出的,它根据指定的深度递归遍历数组,并将所有元素与遍历的子数组中的元素组合成一个。(扁平意味着“水平的;扁平”)

Constresult1=arr.flat(无穷大)//指定深度为无穷大。

console.log(result1)//[1,2,3,4,5]

construsult2=arr . flat(1)//指定深度1

console.log(result2)//[1,2,3,[4,5]]

construsult3=arr . flat(2)//指定深度2

console.log(result3)//[1,2,3,4,5]

2.使用正则

以下做法得到的数组元素都会变成字符串,不建议使用;

constrasult1=JSON . stringify(arr)。替换(/\[|\]/g ' ')。拆分(',')

Console.log (result1)//['1 ',' 2 ',' 3 ',' 4 ',' 5']数组元素都变成了字符串对以上方法进行优化处理;.

constrasult2=JSON . parse('[' JSON . stringify(arr))。替换(/\[|\]/g,")']')

Console.log (result2)//[1,2,3,4,5]

3.使用reduce()+concat()

使用reduce获取数组的当前值和前一个值,判断当前值是否为数组,将初始值设置为[],然后使用concat合并数组。

Reduce()方法:执行您为数组中的每个元素提供的reduce函数(按升序执行),并将结果汇总成一个返回值。

Concat()方法:用于合并两个或多个数组。此方法不更改现有数组,但返回一个新数组。

函数扁平化(arr){ 0

returnrr . reduce((pre,current)=}

returnpre.concat(Array.isArray(当前)?展平(电流):电流)

},[])

}

construction sult=扁平化(arr)

Console.log (result)//[1,2,3,4,5]

4.使用函数递归

循环迭代数组,找到数组元素时递归处理,最后将数组转换为一维数组。

constrasult=[]

function exec(arr){ 0

arr . foreach(item={ 0

if(array . isarray(item)){ 0

执行(项目)

}else{

结果.推送(项目)

}

})

}

高管

Console.log (result)//[1,2,3,4,5]

5.使用扩展运算符+concat()

ES6新引入的扩展运算符可以对数组降维(一次降一维),循环判断是否有数组,进行concat合并。

Some()方法:测试数组中是否至少有一个元素通过了提供的函数测试(它返回一个布尔值)。

函数扁平化(arr){ 0

while(arr . some(item=array . isarray(item)))

arr=[]。concat(.arr)

}

返回

}

construction sult=扁平化(arr)

Console.log (result)//[1,2,3,4,5]这里分享了js如何展平数组的答案。我希望

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/144254.html

(0)

相关推荐

  • Vue3知识地图之Vue生命周期函数与常用模板语法

    技术Vue3知识地图之Vue生命周期函数与常用模板语法本篇内容主要讲解“Vue3知识地图之Vue生命周期函数与常用模板语法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue

    攻略 2021年10月22日
  • 6英尺是多少厘米,六英尺三英寸,大约合多少厘米

    技术6英尺是多少厘米,六英尺三英寸,大约合多少厘米六英尺三英寸 = 190.5 cm6英尺是多少厘米。分析过程如下:1 foot 英尺(呎) = 0.00018939393939394miles(英里)=12 inche

    生活 2021年10月25日
  • 霹雳的意思是什么,霹雳有什么诗号让人印象深刻

    技术霹雳的意思是什么,霹雳有什么诗号让人印象深刻一直以来《霹雳布袋戏》就深受大家的喜爱是因为它深入人心的角色,精彩的剧情。里面快意恩仇,肝胆相照,智冠群伦的智者,刀狂剑痴,心中唯有剑的柳生剑影,美丽的月神,视钱如命的杀手

    生活 2021年10月19日
  • 苹果手机如何删除通讯录联系人,苹果id怎么删除电话号码

    技术苹果手机如何删除通讯录联系人,苹果id怎么删除电话号码苹果手机删除电话号方法苹果手机如何删除通讯录联系人: 以iPhone8手机为例,删除“联系人”(电话号码)有如下操作: 一、在手机桌面打开“电话”。
    二、打开“

    生活 2021年10月22日
  • 平面法向量的求法,平面方程和法向量的关系及证明

    技术平面法向量的求法,平面方程和法向量的关系及证明所谓平面的法向量,就是与平面垂直的一个向量,它就是由平面方程中三个未知数的系数所组成的向量。 它们的关系可如此证明平面法向量的求法: 设向量(A,B,C)是一个过点(x0

    生活 2021年10月20日
  • 怎么解决TensorFlowGPU版出现OOM错误的问题

    技术怎么解决TensorFlowGPU版出现OOM错误的问题这篇文章主要介绍“怎么解决TensorFlowGPU版出现OOM错误的问题”,在日常操作中,相信很多人在怎么解决TensorFlowGPU版出现OOM错误的问题

    攻略 2021年11月4日