在reduce函数中使用函数参数:Javascript
我有一个具有以下结构的对象数组,作为响应发送:在reduce函数中使用函数参数:Javascript,javascript,ecmascript-6,Javascript,Ecmascript 6,我有一个具有以下结构的对象数组,作为响应发送: let sampleData = [ { valueObj: { High: 4, Low: 5, Medium: 7 } , time: "1571372233234" , sum: 16 }, { valueObj: { High: 5, Low: 3, Medium : 1 }, time: "1571372233234" , sum: 9}, { time: "14354545454", su
let sampleData = [
{ valueObj: { High: 4, Low: 5, Medium: 7 } , time: "1571372233234" , sum: 16 },
{ valueObj: { High: 5, Low: 3, Medium : 1 }, time: "1571372233234" , sum: 9},
{ time: "14354545454", sum: 0},
{ time: "14354545454", sum: 0} }
];
我需要获取数组中每个对象中的每个键,并从中形成一个数组。基本上是基于所有对象中存在的键进行分组。如果对象没有“值”,则应在val1、val2、val3上返回0
result = [
{ name: 'High', data: [4, 5, 0, 0] },
{ name: 'Medium', data: [5, 3, 0, 0] },
{ name: 'Low', data: [7, 1, 0, 0] }
]
只想将一个参数传递给一个函数,该函数应该在reduce中使用。这里我传递的是“valueObj”,应该在reduce中使用。但我无法参考相同的内容
我尝试了以下方法:
let sampleData=[{valueObj:{High:4,Low:5,Medium:7},time:'157137223234',sum:16},{valueObj:{High:5,Low:3,Medium:1},time:'157137223234',sum:9},{time:'1435454545454',sum:0},{time:'143545454545454',sum:0};
让键=[‘高’、‘低’、‘中’];
函数formResult(采样数据、值、键){
让grouped=sampleData.reduce((r,{values={}}={})=>{
r、 forEach(({name,data})=>data.push(值[name]| | 0));
返回r;
},keys.map(name=>({name,data:[]}));
控制台日志(分组);
}
formResult(sampleData,“valueObj”,键)
重命名值
参数(我使用了prop
),因为它用于reduce函数。用于提取属性并将其指定给值
:
const sampleData=[{valueObj:{High:4,Low:5,Medium:7},time:'157137223234',sum:16},{valueObj:{High:5,Low:3,Medium:1},time:'157137223234',sum:9},{time:'1435454545454',sum:0},{time:'1435454545454',sum:0};
常量键=[“高”、“低”、“中”];
函数formResult(采样数据、道具、按键){
让grouped=sampleData.reduce((r,{[prop]:value={}}={})=>{
r、 forEach(({name,data})=>data.push(值[name]| | 0));
返回r;
},keys.map(name=>({name,data:[]}));
控制台日志(分组);
}
formResult(样本数据,“valueObj”,键)代码>