我将编写一个函数来创建这样的数组
["0-AA", "0-BB", "1-AA", "1-BB", "2-AA", "2-BB", "3-AA", "3-BB"]
确切地说,此函数是以下两个数组的组合,并带有分隔符“-”。例如:
arr1 = [0,1,2,3] //number
arr2 = ["AA", "BB"] //produce code
结果始终等于两个数组长度的乘积。两个数组的大小可能会更改。第一个数组始终为整数
我想知道一个好的方法来根据规则合并数组。有没有可能用一个只包含数组的函数来写,比如map,concat等等,而不用重复的语句,比如for语句?
4条答案
按热度按时间5fjcxozz1#
这称为Carthesian product,每个数组需要一个循环。这里,我使用
map
和flatMap
来实现此目的。或者是一个广义的版本,其中
product
接受任意数量的数组并返回元组,你可以自己连接它们。reduce
提供的额外循环对输入数组进行迭代。xyhw6mcr2#
您可以使用
.reduce
和.forEach
4c8rllxm3#
你当然可以像其他人那样做
我建议使用一个更传统的函数和for循环,因为在速度和内存使用方面有轻微的性能提升。
xlpyo6sf4#
对于您的最后一个要求,
有没有可能用只包含数组的函数(如map、concat等)编写代码,而不用重复的语句(如for语句)?
我想你接受
array.forEach()
。