JavaScript - 将数组的数组合并为一个数组

3

数组输入: [["test","test"],["test2","test"],["test2","test2"],["test","test2"]]

数组输出: ["test test","test2 test","test2 test2","test test2"]

我可以通过以下方式获取此输出:

output = input.join("|").replace(/,/g," ").toString().split("|")

然而,我并不喜欢这种解决方法,因为:

  • 它看起来不自然
  • 如果其中一个数组本身包含一个逗号,它也将被删除
  • 如果其中一个数组本身包含一个管道符,则分割结果将不如预期

如何在没有这些缺陷的情况下获得输出?


#FP: 一个通用的工具函数 var join = glue => arr => Array.prototype.join.call(Object(arr), glue); 和它的使用 arr.map( join(" ") ); 可以处理任何看起来像数组的东西。 - Thomas
1个回答

10

不需要加入外部数组,您可以使用map将每个内部数组分别join

var arr = [["test","test"],["test2","test"],["test2","test2"],["test","test2"]];
var output = arr.map(subarr => subarr.join(' '));

它完美地运行,谢谢。还要感谢地图方法。它看起来非常强大。 - agustin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接