首页  >  问答  >  正文

合并/展平数组的数组

<p>我有一个 JavaScript 数组,例如:</p> <pre class="brush:php;toolbar:false;">[["$6"], ["$12"], ["$25"], ["$25"], ["$18"], ["$22"], ["$10"]]</pre> <p>我如何将单独的内部数组合并成一个这样的数组:</p> <pre class="brush:php;toolbar:false;">["$6", "$12", "$25", ...]</pre> <p><br /></p>
P粉828463673P粉828463673420 天前493

全部回复(2)我来回复

  • P粉557957970

    P粉5579579702023-08-28 10:33:02

    这是一个简短的函数,它使用一些较新的 JavaScript 数组方法来展平 n 维数组。

    function flatten(arr) {
      return arr.reduce(function (flat, toFlatten) {
        return flat.concat(Array.isArray(toFlatten) ? flatten(toFlatten) : toFlatten);
      }, []);
    }

    用法:

    flatten([[1, 2, 3], [4, 5]]); // [1, 2, 3, 4, 5]
    flatten([[[1, [1.1]], 2, 3], [4, 5]]); // [1, 1.1, 2, 3, 4, 5]

    回复
    0
  • P粉293341969

    P粉2933419692023-08-28 09:31:51


    ES2019

    ES2019 引入了数组。 prototype.flat() 方法,您可以使用它来展平数组。它与大多数环境兼容,尽管它仅在从版本 11 开始的 Node.js 中可用,而不是在 Node.js 中可用。在 Internet Explorer 中完全可以。

    const arrays = [
          [""],
          [""],
          [""],
          [""],
          [""],
          [""],
          [""]
        ];
    const merge3 = arrays.flat(1); //The depth level specifying how deep a nested array structure should be flattened. Defaults to 1.
    console.log(merge3);
        

    回复
    0
  • 取消回复