jas*_*jas 3 javascript arrays json
我有一个随机的json数组键值,其中值是这样的数组:
json = {foo:[1,2],bar:[3,4],pi:[5]}
Run Code Online (Sandbox Code Playgroud)
如何为任意数量的键生成这些参数的每个组合,以便我返回如下列表:
{foo:1,bar,3,pi:5}
{foo:1,bar:4,pi:5}
{foo:2,bar:3,pi:5}
{foo:2,bar:4,pi:5}
Run Code Online (Sandbox Code Playgroud)
使用reduce和每次迭代,生成新的排列:
const json = {foo:[1,2],bar:[3,4],pi:[5, 7], test: [1]};
const results = Object.keys(json).reduce((acc, key) => {
const newArray = [];
json[key].forEach(item => {
if (!acc || !acc.length) { // First iteration
newArray.push({[key]: item});
} else {
acc.forEach(obj => {
newArray.push({...obj, [key]: item});
});
}
});
return newArray;
}, []);
console.log(results);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |