【问题标题】:Joining disjointed arrays into one array [duplicate]将不相交的数组合并为一个数组[重复]
【发布时间】:2021-03-11 13:40:05
【问题描述】:

我有一张地图,它返回一个不连贯的数组列表。

(3) ["string1", "string2", "string3"]
(1) ["string4"]
(2) ["string5", "string6"]

我怎样才能得到

(6) ["string1", "string2", "string3", "string4", "string5", "string6"]

我已经尝试过 concat()、Set()、Map()。但我无法绕开它。

【问题讨论】:

    标签: javascript


    【解决方案1】:

    像这样使用Array#flat

    let flattenedArray = arrayOfArrays.flat();
    

    let arr = [
      ["string1", "string2", "string3"],
      ["string4"],
      ["string5", "string6"]
    ];
    
    let result = arr.flat();
    
    console.log(result);

    注意:如果数组数组是map 的结果,您可以使用Array.flatMap 一步完成(映射和展平),而不是像这样:

    let flattenedArray = originalArray.flatMap( /* callback that returns subarrays */ );
    

    let arr = [
      "string1-string2-string3",
      "string4",
      "string5-string6"
    ];
    
    let result = arr.flatMap(str => str.split("-"));
    
    console.log(result);

    【讨论】:

    • 您好,感谢您对此进行调查,但是在您的第二个示例中,我的数组没有用破折号连接,因此不幸的是它解决了另一个问题。
    • @umbriel 这只是一个演示,向您展示flatMap 的工作原理,回调可以是任何返回数组的东西,我只是使用split 进行演示。只需在您的代码中将 map 替换为 flatMap 即可
    【解决方案2】:

    你应该使用Array.flat

    const strings = [["string1", "string2", "string3"], ["string4"],["string5", "string6"]]
    console.log(strings.flat())

    【讨论】:

      猜你喜欢
      • 2017-03-20
      • 2017-03-22
      • 1970-01-01
      • 2017-01-01
      • 2023-03-14
      • 2014-06-29
      • 2021-01-24
      • 1970-01-01
      • 2022-08-23
      相关资源
      最近更新 更多