Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从具有多个道具作为阵列的对象创建阵列?_Javascript_Arrays - Fatal编程技术网

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