我有一系列选项的对象。在每个选项上,我都需要创建平面对象。就像这样
name: 'win10',
architectures: ['x64', 'x86'],
languages: ['en', 'ru'],转化为:
[
{ name: 'win10',
architectures 'x64',
languages: 'en',
}, {
name: 'win10',
architectures: 'x86',
languages: 'ru',
}, {
name: 'win10',
architectures: 'x64',
languages: 'en',
}, {
name: 'win10',
architectures: 'x86',
languages: 'ru',
}
]发布于 2021-04-27 11:08:21
这应该可以做到:
let input = {
name: 'win10',
architectures: ['x64', 'x86'],
languages: ['en', 'ru']
};
function flatten(system) {
let output = [];
for (let i = 0; i < system.architectures.length; i++) {
const arch = system.architectures[i];
for (let j = 0; j < system.languages.length; j++) {
const lang = system.languages[j];
output = [...output, {
name: system.name,
architectures: arch,
language: lang
}];
}
}
return output;
}
const output = flatten(input);
console.log(output);发布于 2021-04-27 11:16:35
这是另一种方法
var x = { name: 'win10',
architectures: ['x64', 'x86'],
languages: ['en', 'ru'] }
var k = [];
x.architectures.forEach(p => {
x.languages.forEach((y => {
k.push({name: x.name, architectures:p,languages:y})
}))
})
console.log(k)https://stackoverflow.com/questions/67281706
复制相似问题