当前位置: 首页 > news >正文

JS实现数组的扁平化(ES6实现)----例子+难点解析

要求

  • 取出嵌套数组(多维)中的所有元素放到一个新数组(一维)中
  • 如: [1, [3, [2, 4]]] ==> [1, 3, 2, 4]

基础知识

arr.concat()

语法:数组.concat(其他数组) 作用:将其他数组和数组拼接在一起 返回值:拼接好的新数组

//准备一个原始数组
var arr=[4,6,8,2,33]
//输出一次
console.log(arr)
//执行 concat 方法
var res=arr.concat([100,200])console.log(arr)
console.log(res) // [4, 6, 8, 2, 33, 100, 200]

ES6实现: some与…与concat

function flatten(arr) {while(arr.some(item => item instanceof Array)) {arr = [].concat(...arr)}return arr
}
let arr = [1, 2, [3, 4], [5, 6]]
console.log(flatten(arr)); // [1, 2, 3, 4, 5, 6]

理解难点:[].concat(…arr)

你试一试

let arr = [1, 2, [3, 4], [5, 6]]
console.log([].concat(...arr)) // [1, 2, 3, 4, 5, 6]

…会把arr拆成 1 2 [3, 4] [5, 6]

而concat会把数值、数组进行拼接,比如 [] 与 1 ⇒ [1] [1] 与 [3, 4] ⇒ [1, 3, 4]

 

http://www.lryc.cn/news/148482.html

相关文章:

  • git 提交错误,回滚到某一个版本
  • 数据结构:八种数据结构大全
  • Java正则表达式系列--Pattern和Matcher的使用
  • 40个web前端实战项目,练完即可就业,从入门到进阶,基础到框架,html_css【附视频+源码】
  • Erasure-Code(纠删码) 最佳实践
  • USB 转 4 串口芯片 CH9104
  • java实现医院门诊排班与预约系统【代码】
  • 8.Redis-set
  • 电子厂生产管理系统解决方案
  • ARM DIY(五)摄像头调试
  • hadoop2.2.0伪分布式搭建
  • 高级IO(select、poll、epoll)
  • Ceph基础知识和基础架构认识
  • 【C++】快速排序的学习和介绍
  • 第九章 动态规划part12(代码随想录)
  • ssm珠宝首饰交易平台源码和论文
  • 交互设计都有哪些准则?
  • 【MySQL】从哪几个角度分析数据库失败的原因?
  • Spring Boot 的核心注解SpringBootApplication
  • 自助式数据分析平台:JVS智能BI功能介绍(一)数据源
  • CSS魔术师Houdini,用浏览器引擎实现高级CSS效果
  • DC/DC开关电源学习笔记(二)开关电源的分类
  • conda创建python虚拟环境
  • Python 操作 MongoDB 数据库介绍
  • 【ES6】Generator 函数
  • 「操作系统」1. 基础
  • Docker安装Oracl数据库!
  • QT子窗口为QWidget类型时,窗口背景不透明的实现方法
  • leecode 数据库:1158. 市场分析 I
  • 简单shell脚本的编写