首页 > 解决方案 > Javascript:具有n个值的n个数组的所有排列

问题描述

如果我有这样的收藏:

var array = {
    "fruit": ["apple","banana"],
    "amount": ["1", "2", "3"],
    "orign": ["africa", "asia", "europe"],
    ...
    "n": ["0", "...", "n"]
}

我将如何获得 JSON 格式的所有组合,如下所示:

[
 {
   "fruit": "apple",
   "amount": "1",
   "orign": "africa"
 }
 {
   "fruit": "apple",
   "amount": "1",
   "orign": "asia"
 }
 ...
]

是否可以以迭代方式遍历所有元素?还是我最终会写 n 个循环?

标签: javascriptarraysjsonloops

解决方案


我相信您正在寻找“笛卡尔积”(假设数组是集合)。您的问题(以略微不同的方式)之前已在此处讨论过。您可以在那里看到不同的解决方案,包括递归解决方案和许多类似的函数式编程。

我希望它有所帮助,

干杯!


推荐阅读