Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.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_Ecmascript 6 - Fatal编程技术网

Javascript 如何向对象数组的现有键添加多个值?

Javascript 如何向对象数组的现有键添加多个值?,javascript,ecmascript-6,Javascript,Ecmascript 6,我正在尝试使用reduce()获取特定wicket的经济费率 示例数据: var data = [ {wicket:0, econ:20 }, {wicket:1, econ:10 }, {wicket:3, econ:45 }, {wicket:0, econ:15 }, {wicket:1, econ:32 } ] 我希望reduce()方法返回如下所示的对象数组: 0: 20, 15 1: 10, 32 3: 45 我试图用对象初始化累加器

我正在尝试使用
reduce()
获取特定wicket的经济费率

示例数据:

   var data = [
    {wicket:0, econ:20 },
    {wicket:1, econ:10 },
    {wicket:3, econ:45 },
    {wicket:0, econ:15 },
    {wicket:1, econ:32 }
]
我希望
reduce()
方法返回如下所示的对象数组:

0: 20, 15
1: 10, 32
3: 45
我试图用对象初始化累加器,但在
reduce()
方法中,我无法弄清楚如何使用
key-value
as
wicket
value
as
economy
获得所需的对象数组

我的代码:

const Economy = data.reduce( (a, {econ, wicket}) => {

            a[wicket].push(econ);           

    },{})

我在上面的代码中得到了未定义的行为。

如果您的
数据
是一个
数组
,而不是
对象
(它现在不是,至少不是有效的):

let数据=[
{wicket:0,econ:20},
{wicket:1,econ:10},
{wicket:3,econ:45},
{wicket:0,econ:15},
{wicket:1,econ:32}
];
让结果=数据。减少((acc,curr)=>{
if(acc[curr.wicket])acc[curr.wicket].push(curr.econ);
else acc[当前wicket]=[当前经济];
返回acc;
},{});

控制台日志(结果)
您可以使用
reduce
对数组进行分组,如:

var data=[{“wicket”:0,“econ”:20},{“wicket”:1,“econ”:10},{“wicket”:3,“econ”:45},{“wicket”:0,“econ”:15},{“wicket”:1,“econ”:32};
var结果=数据减少((c,v)=>{
c[v.wicket]=c[v.wicket]| |[];//初始化该属性,因为它的空数组不存在
c[v.wicket].推(v.econ);
返回c;
}, {});

控制台日志(结果)
reduce
不是对象的原型方法
data
是您上面编辑的问题代码中的一个对象。这一行->
c[v.wicket]|【】
做什么?@stonerock基本上它将属性初始化为一个不存在的空数组。但是auccumerator初始化为
{/code>对象,所以它不应该是
c[v.wicket]|{
@stonerock我添加了一个解释。如果没有,请指定一个空数组,如
c[0]=[]