Javascript 如何从具有多个道具作为阵列的对象创建阵列?
我有以下结构Javascript 如何从具有多个道具作为阵列的对象创建阵列?,javascript,arrays,Javascript,Arrays,我有以下结构 groups = { groupA: ["tag1","tag2","tag3"], //thousands of values groupB: ["tagA","tagB","tagC"], //thousands of values groupC: ["tag1A","tag2B","tag3C"
groups = {
groupA: ["tag1","tag2","tag3"], //thousands of values
groupB: ["tagA","tagB","tagC"], //thousands of values
groupC: ["tag1A","tag2B","tag3C"] //thousands of values
}
我需要把它改成这样
tags = [{tag: 'tag1', group: 'groupA'}, {tag: 'tag2', group: 'groupA'}] //etc
尝试了一段时间,但似乎无法达到我需要的结果:///p>您可以这样做
tags = [{tag: 'tag1', group: 'groupA'}, {tag: 'tag2', group: 'groupA'}] //etc
组={
A组:[“tag1”、“tag2”、“tag3”],
B组:[“tagA”、“tagB”、“tagC”],
C组:[“tag1A”、“tag2B”、“tag3C”],
}
tags=[…groups.groupA.map(tag=>({
标签,
集团:“集团A”
})),
…groups.groupB.map(标记=>({
标签,
组:“B组”
})),
…groups.groupC.map(标记=>({
标签,
小组:“C组”
}))
]
控制台日志(标签)代码>
使用for in循环捕获密钥
在每个对象上运行for循环以捕获标记
将其推送到预定义的数组中
let组={
groupA:[“tag1”、“tag2”、“tag3”],//数千个值
groupB:[“tagA”、“tagB”、“tagC”],//数千个值
C组:[“tag1A”、“tag2B”、“tag3C”],//数千个值
}
设为[];
for(组中的变量键){
组[key].forEach((标记)=>{
推({
组别:重点,,
标签:标签
})
});
}
控制台日志(已更改)代码>试试这个
let组={
groupA:[“tag1”、“tag2”、“tag3”],//数千个值
groupB:[“tagA”、“tagB”、“tagC”],//数千个值
C组:[“tag1A”、“tag2B”、“tag3C”],//数千个值
};
让标签=[];
for(组中的常数g){
for(群的常数[g]){
标签。推({
标签:t,
组别:g
});
}
}
控制台日志(标签)代码>您可以轻松实现这一点
const组={
小组:{
A组:[“tag1”、“tag2”、“tag3”],
B组:[“tagA”、“tagB”、“tagC”],
C组:[“tag1A”、“tag2B”、“tag3C”],
},
};
const result=Object.entries(groups.groups)
.map([key,values])=>{
返回值.map((el)=>({tag:el,group:key}));
})
.flat();
控制台日志(结果)代码>请添加您尝试过的代码。通过对象的简单循环->通过值数组的循环->将对象推送到输出数组应该可以工作。当它与最终结果无关时,为什么会有groupC
?