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
    }
  },

四、欢迎交流指正。

相关文章
|
6月前
|
JavaScript 前端开发
ES modules: A cartoon deep-dive
ES modules: A cartoon deep-dive
59 1
|
API
No module named 'plotly.graph_objects'问题解决
No module named 'plotly.graph_objects'问题解决
347 0
No module named 'plotly.graph_objects'问题解决
Can‘t get attribute ‘SiLU‘ on <module ‘torch.nn.modules.activation‘
Can‘t get attribute ‘SiLU‘ on <module ‘torch.nn.modules.activation‘
|
存储 JavaScript API
ES6 中的 Symbol —— 多的是你不知道的事
ES6 中的 Symbol —— 多的是你不知道的事
83 0
TS中的infer
处理方式 TS中的infer
129 0
HDLBits(1)——Modules:Hierarchy(中)
目录 HDLBits——Modules:Hierarchy 问题19 Module 将信息连接到端口 By position By name 问题20 Connecting ports by position(Module pos) 问题21 Connecting ports by name(Module name) 问题22 Three modules(Module shift) 问题23 Modules and vectors(Module shift8) 问题24 Adder 1(Module add) 问题25 Adder 2(Module fadd) 问题26 Carry-selec
114 0
HDLBits(1)——Modules:Hierarchy(中)
HDLBits(1)——Modules:Hierarchy(上)
目录 HDLBits——Modules:Hierarchy 问题19 Module 将信息连接到端口 By position By name 问题20 Connecting ports by position(Module pos) 问题21 Connecting ports by name(Module name) 问题22 Three modules(Module shift) 问题23 Modules and vectors(Module shift8) 问题24 Adder 1(Module add) 问题25 Adder 2(Module fadd) 问题26 Carry-selec
198 0
HDLBits(1)——Modules:Hierarchy(上)
HDLBits(1)——Modules:Hierarchy(下)
目录 HDLBits——Modules:Hierarchy 问题19 Module 将信息连接到端口 By position By name 问题20 Connecting ports by position(Module pos) 问题21 Connecting ports by name(Module name) 问题22 Three modules(Module shift) 问题23 Modules and vectors(Module shift8) 问题24 Adder 1(Module add) 问题25 Adder 2(Module fadd) 问题26 Carry-selec
130 0
HDLBits(1)——Modules:Hierarchy(下)
flat
flat
160 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