Javascript 将对象中的值获取到数组中

Javascript 将对象中的值获取到数组中,javascript,ecmascript-6,Javascript,Ecmascript 6,我的目标如下: export const data = { tasks: { "Cleaning": { personA: 1, personB: 0.5, personC: 0.1, personD: 0, }, "Washing": { personA: 1, personB: 0.5, personC: 0.1, personD: 0,

我的目标如下:

export const data = {
  tasks: {
    "Cleaning": {
        personA: 1,
        personB: 0.5,
        personC: 0.1,
        personD: 0,
    },
    "Washing": {
        personA: 1,
        personB: 0.5,
        personC: 0.1,
        personD: 0,
    },
    "Something else": {
        personA: 1,
        personB: 0.3,
        personC: 0.2,
        personD: 0.3,
    },
  }
}
我现在想要的是四个数组,其中包含每个人的所有值:

person A = [1, 1, 1]
person B = [0.5, 0.5, 0.3]
person C = [0.1, 0.2, 0.3]
person D = [0, 0, 0.3]

我已经用
Object.values()
尝试了一些方法,但我现在完全被卡住了。如何实现这一点?

假设每个任务的人数相等:

const数据={
任务:{
“清洁”:{
人物:1,
人员B:0.5,
个人:0.1,
个人:0,
},
“洗涤”:{
人物:1,
人员B:0.5,
个人:0.1,
个人:0,
},
“其他东西”:{
人物:1,
人员B:0.3,
个人:0.2,
个人:0.3,
},
}
}
const tasks=Object.key(data.tasks);
const result=Object.keys(data.tasks[tasks[0]])。reduce((acc,curr)=>({
…acc,
[curr]:tasks.map(key=>data.tasks[key][curr]),
}), {});

控制台日志(结果)假设每个任务的人数相等:

const数据={
任务:{
“清洁”:{
人物:1,
人员B:0.5,
个人:0.1,
个人:0,
},
“洗涤”:{
人物:1,
人员B:0.5,
个人:0.1,
个人:0,
},
“其他东西”:{
人物:1,
人员B:0.3,
个人:0.2,
个人:0.3,
},
}
}
const tasks=Object.key(data.tasks);
const result=Object.keys(data.tasks[tasks[0]])。reduce((acc,curr)=>({
…acc,
[curr]:tasks.map(key=>data.tasks[key][curr]),
}), {});

控制台日志(结果)您可以使用
Object.keys()
进行映射。它用于映射对象,就像数组一样

const数据={
任务:{
“清洁”:{
人物:1,
人员B:0.5,
个人:0.1,
个人:0,
},
“洗涤”:{
人物:1,
人员B:0.5,
个人:0.1,
个人:0,
},
“其他东西”:{
人物:1,
人员B:0.3,
个人:0.2,
个人:0.3,
},
}
}
const personA=[];
const personB=[];
const personC=[];
const personD=[];
对象.键(数据.任务).映射(函数(键,索引){
push(data.tasks[key][“personA”]);
personB.push(data.tasks[key][“personB”]);
personC.push(data.tasks[key][“personC”]);
personD.push(data.tasks[key][“personD”]);
});
console.log(角色)
console.log(personB)
console.log(personC)

console.log(personD)
您可以使用
Object.keys()
进行映射。它用于映射对象,就像数组一样

const数据={
任务:{
“清洁”:{
人物:1,
人员B:0.5,
个人:0.1,
个人:0,
},
“洗涤”:{
人物:1,
人员B:0.5,
个人:0.1,
个人:0,
},
“其他东西”:{
人物:1,
人员B:0.3,
个人:0.2,
个人:0.3,
},
}
}
const personA=[];
const personB=[];
const personC=[];
const personD=[];
对象.键(数据.任务).映射(函数(键,索引){
push(data.tasks[key][“personA”]);
personB.push(data.tasks[key][“personB”]);
personC.push(data.tasks[key][“personC”]);
personD.push(data.tasks[key][“personD”]);
});
console.log(角色)
console.log(personB)
console.log(personC)

console.log(personD)
您可以使用
Array.reduce()
Array.forEach()
按个人创建数据对象,然后对其进行分解:

const data={“tasks”:{“Cleaning”:{“personA”:1,“personB”:0.5,“personC”:0.1,“personD”:0},“Washing”:{“personA”:1,“personB”:0.5,“personC”:0.1,“personD”:0.1,“personB”:0.3,“personC”:0.2,“personD”:0.3};
const result=Object.values(data.tasks).reduce((r,o)=>{
Object.entries(o.forEach)([k,v])=>{
常数目标=r[k]| |(r[k]=[]);
目标推送(v);
});
返回r;
}, {});
const{personA,personB,personC,personD}=结果;
console.log(personA);
控制台日志(personB);
console.log(personC);

控制台日志(personD)
您可以使用
Array.reduce()
Array.forEach()
按个人创建数据对象,然后对其进行分解:

const data={“tasks”:{“Cleaning”:{“personA”:1,“personB”:0.5,“personC”:0.1,“personD”:0},“Washing”:{“personA”:1,“personB”:0.5,“personC”:0.1,“personD”:0.1,“personB”:0.3,“personC”:0.2,“personD”:0.3};
const result=Object.values(data.tasks).reduce((r,o)=>{
Object.entries(o.forEach)([k,v])=>{
常数目标=r[k]| |(r[k]=[]);
目标推送(v);
});
返回r;
}, {});
const{personA,personB,personC,personD}=结果;
console.log(personA);
控制台日志(personB);
console.log(personC);

控制台日志(personD)以下是我的建议

任务={
“清洁”:{
人物:1,
人员B:0.5,
个人:0.1,
个人:0,
},
“洗涤”:{
人物:1,
人员B:0.5,
个人:0.1,
个人:0,
},
“其他东西”:{
人物:1,
人员B:0.3,
个人:0.2,
个人:0.3,
},
}
var personA=[];
var personB=[];
var personC=[];
var personD=[];
key(tasks).map(函数(项,索引){
推送(任务[项目].personA)
personB.push(任务[项目].personB)
push(任务[项].personC)
推送(任务[项目].personD)
})
console.log(角色)
console.log(personB)
console.log(personC)

console.log(personD)
以下是我的建议

任务={
“清洁”:{
人物:1,
人员B:0.5,
个人:0.1,
个人:0,
},
“洗涤”:{
人物:1,
人员B:0.5,
个人:0.1,
个人:0,
},
“其他东西”:{
人物:1,
人员B:0.3,
个人:0.2,
个人:0.3,
},
}
var personA=[];
var personB=[];
var personC=[];
var personD=[];
目标