数组扁平化

server/2024/9/24 22:56:08/

数组扁平化

输入:[1,[2,[3,5],5],6]

输出:[1,2,3,4,5,6]

方法一:递归

const transformArray = (arr, res) => {for (let i = 0; i < arr.length; i++) {if (arr[i] instanceof Array) {transformArray(arr[i], res)} else {res.push(arr[i])}}return res
}let array = [1, [2, [3, 4], 5], 6]
let result = []console.log(transformArray(array, result))
// [1,2,3,4,5,6]

方法二:递归(用contact和push)

const transformArray = (arr) => {let res = []for (let i = 0; i < arr.length; i++) {if (Array.isArray(arr[i])) {res = res.concat(transformArray(arr[i]))} else {res.push(arr[i])}}return res
}let array = [1, [2, [3, 4], 5], 6]console.log(transformArray(array))
// [1, 2, 3, 4, 5, 6]

方法三:toString

let array = [1, [2, [3, 4], 5], 6]
let result = array.toString().split(',').map((e) => Number(e))console.log(result)
// [1, 2, 3, 4, 5, 6]

方法四:展开运算法

const transformArray = (arr) => {while (arr.some(i => Array.isArray(i))) {arr = [].concat(...arr)}return arr
}let array = [1, [2, [3, 4], 5], 6]
console.log(transformArray(array))
// [1, 2, 3, 4, 5, 6]

方法五:flat

let array = [1, [2, [3, 4], 5], 6]
console.log(array.flat(Infinity))
// [1, 2, 3, 4, 5, 6]

http://www.ppmy.cn/server/36456.html

相关文章

VUE 简单实现登录功能(使用mock模拟后端接口)

在做前后分离的项目时候&#xff0c;比如制作VUE项目&#xff0c;很多时候后端没有提供接口&#xff0c;前端人员可以自己通过mock来造一个接口&#xff0c;返回数据。 安装mockjs和axios&#xff1a; npm install mockjs -S npm install axios -S &#xff08;用于页面调用接…

Qt之QDebug日志输出(含源码)

文章目录 一、日志输出示例1.Qt帮助示例源码2.纯净日志输出&#xff08;日志内容所见即所得&#xff09;3.Qt格式化输出Qt输出栏&#xff08;输出至Qt输出栏&#xff0c;不包括文件&#xff09;4.Qt格式化输出到文件 二、日志文件输出的相关理解1.Qt日志输出函数参数分析2.qIns…

使用 scikit-learn 进行机器学习的基本原理-2

介绍 scikit-learn 估计器对象 每个算法都通过“Estimator”对象在 scikit-learn 中公开。 例如&#xff0c;线性回归是&#xff1a;sklearn.linear_model.LinearRegression 估计器参数&#xff1a;估计器的所有参数都可以在实例化时设置&#xff1a; 拟合数据 让我们用 nump…

Stateflow基础知识笔记

01--Simulink/Stateflow概述 Stateflow是集成于Simulink中的图形化设计与开发工具&#xff0c;主要 用于针对控制系统中的复杂控制逻辑进行建模与仿真&#xff0c;或者说&#xff0c; Stateflow适用于针对事件响应系统进行建模与仿真。 Stateflow必须与Simulink联合使用&#…

搜维尔科技:xsens案例,客户制作的一只可爱的鳄鱼短片

搜维尔科技&#xff1a;xsens案例&#xff0c;客户制作的一只可爱的鳄鱼短片 搜维尔科技&#xff1a;xsens案例&#xff0c;客户制作的一只可爱的鳄鱼短片

基于CLAHE算法的图像增强及评价

摘要&#xff1a; 本研究旨在探讨对比度限制自适应直方图均衡化&#xff08;CLAHE&#xff09;算法在数字图像处理中的应用。CLAHE算法通过在局部区域内进行直方图均衡化&#xff0c;有效地增强了图像的对比度&#xff0c;并在保持图像细节的同时避免了过度增强的问题。本文通过…

融知财经:期货交易所每天公布信息包括哪些?

期货交易所是一个非营利机构&#xff0c;它为交易者提供一个公开、公平、公正的交易场所。虽然它不以盈利为目的&#xff0c;但作为一个财务独立的组织&#xff0c;它会通过会员会费、交易手续费和信息服务等方式实现经济利益。期货交易所每天公布的信息主要包括每日行情、交易…

Baidu Comate:你的智能编码助手,编程效率倍增的秘密武器

Baidu Comate智能编码助手 Baidu Comate 智能编码助手简单介绍安装使用查看Comate插件功能智能代码提示使用飞浆和百度智能小程序进行智能问答使用AutoWork插件实现二次函数图像的生成引用Comate知识库存在的问题结束语 Baidu Comate 智能编码助手简单介绍 Baidu Comate&#x…