【发布时间】:2018-11-06 20:34:21
【问题描述】:
如果我有这样的收藏:
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 个循环?
【问题讨论】:
-
你可以这样做:
const arrays = Object.values({ "fruit": ["apple","banana"], "amount": ["1", "2", "3"], "orign": ["africa", "asia", "europe"] }); const f = (a, b) => [].concat(...a.map(d => b.map(e => [].concat(d, e)))); const cartesian = (a, b, ...c) => (b ? cartesian(f(a, b), ...c) : a); console.log(cartesian(...arrays));
标签: javascript arrays json loops