Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.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
在reduce函数中使用函数参数:Javascript_Javascript_Ecmascript 6 - Fatal编程技术网

在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”,键)