数组数据类型操作

时间:2018-12-18 16:58:34

标签: javascript arrays ecmascript-6

我有一组对象数组。 所以看起来像 [[{}{}],[{}{}{}],[{}{}], [{}{}{}{}]] ...等 我需要遍历此数组中的每个对象。问题是这需要一个nested for loop,这还不错,但是我想知道是否有种方法可以在将扩展运算符放入原始数组时使用扩展运算符。 outerArray.push(...innerArray),与此类似。那没有用,但是有类似的东西吗?

2 个答案:

答案 0 :(得分:2)

您可以使用Array.prototype.flat将嵌套数组转换为扁平数组

Public Sub WhateverYouWantToCallIt()

    Dim x As Long, y As Long
    Dim lLastRow As Long

    With ThisWorkbook.Worksheets("Buyer Trend Metrics")

        'This will set the same last row for each copy.
        lLastRow = .Cells(.Rows.Count, 10).End(xlUp).Row + 1

        y = 10
        For x = 61 To 70

            'This will set the last row on each set of data.
            'lLastRow = .Cells(.Rows.Count, y).End(xlUp).Row + 1

            .Cells(lLastRow, y) = Date

            .Range(.Cells(lLastRow, y + 1), .Cells(lLastRow, y + 7)) = _
                .Range(.Cells(x, 2), .Cells(x, 8)).Value

            '-OR-
            '.Range(.Cells(x, 2), .Cells(x, 8)).Copy
            '.Cells(lLastRow, y + 1).PasteSpecial Paste:=xlPasteValues

            y = y + 9
        Next x
    End With

End Sub

对于较旧的浏览器,您可以参考other answers

答案 1 :(得分:0)

只需在此处添加一个不需要传递深度的选项:

const deepFlatten = arr =>
  [].concat(...arr.map(v => (Array.isArray(v) ? deepFlatten(v) : v)))

deepFlatten(outerArray)呼叫