ES6:flat()

简介: ES6:flat()

一、简介

用于将嵌套的数组“拉平”,变成一维数组。该方法返回一个新数组,对原数据没有影响。

二、使用

flat参数为几,那么是将几层数组拉平到一层数组,infinity为无限层级

[1, [2, [3]]].flat(3)

[1, [2, [3]]].flat(Infinity)

三、解决(部分)浏览器不支持

挂载到数组的原型上即可

created () {
    Array.prototype.flat = count => {
      let c = count || 1
      const len = this.length
      let exe = []
      if (this.length === 0) return this
      while (c--) {
        const _arr = []
        let flag = false
        if (exe.length === 0) {
          flag = true
          for (let i = 0; i < len; i += 1) {
            if (this[i] instanceof Array) {
              exe.push(...this[i])
            } else {
              exe.push(this[i])
            }
          }
        } else {
          for (let i = 0; i < exe.length; i += 1) {
            if (exe[i] instanceof Array) {
              flag = true
              _arr.push(...exe[i])
            } else {
              _arr.push(exe[i])
            }
          }
          exe = _arr
        }
        if (!flag && c === Infinity) {
          break
        }
      }
      return exe
    }
  },

四、欢迎交流指正。

相关文章
什么是 Angular library 的 secondary entry points?
什么是 Angular library 的 secondary entry points?
|
5月前
|
搜索推荐 JavaScript API
Spartacus cds-feature.module.ts 源代码结构介绍
Spartacus cds-feature.module.ts 源代码结构介绍
|
5月前
|
JavaScript 前端开发
ES modules: A cartoon deep-dive
ES modules: A cartoon deep-dive
54 1
|
API
No module named 'plotly.graph_objects'问题解决
No module named 'plotly.graph_objects'问题解决
325 0
No module named 'plotly.graph_objects'问题解决
|
JavaScript 编译器
ES feature and support
ES feature and support
46 0
Can‘t get attribute ‘SiLU‘ on <module ‘torch.nn.modules.activation‘
Can‘t get attribute ‘SiLU‘ on <module ‘torch.nn.modules.activation‘
|
JavaScript 开发者 索引
通过 Lodash 学 TS —— 实现 pick 方法
一、前言 最近学习TS,被复杂的类型体操搞的比较晕, 经常想学了那么高深的体操后是不是有用武之地,技术的学习应该是要以落地为目的,要不然很快就忘记了, 其实我在业务开发中用ts用的用的比较浅, 想框架源码中那么高深的ts,我暂时还没有用到过, 还没到给框架提merge的水平, 其实用ts最多的还是方法类库,毕竟经常打交道,而且同事很大可能会用你写的方法, 所以学着给方法加TS,是个不错的选择 处。
262 0
flat
flat
147 0
|
计算机视觉
【Bug记录】ModuleNotFoundError: No module named ‘sklearn.grid_search‘
【Bug记录】ModuleNotFoundError: No module named ‘sklearn.grid_search‘
190 0
|
TensorFlow 算法框架/工具
成功解决AttributeError: module tensorflow.sets has no attribute intersection
成功解决AttributeError: module tensorflow.sets has no attribute intersection
成功解决AttributeError: module tensorflow.sets has no attribute intersection