【发布时间】:2018-12-12 15:22:25
【问题描述】:
我的问题很简单,
我的输入是
[
{ department_id: '28', linear_meter: 6 },
{ department_id: '56', linear_meter: 19 },
{ department_id: '28', square_meters: 20.28 },
{ department_id: '56', square_meters: 18.28827 }
]
我想要一个这样的东西:
[
{
"department_id": 28,
"linear_meters": 6,
"square_meters": 20.28
},
{
"department_id": 56,
"linear_meters": 19,
"square_meters": 18.28827
},
]
我试过了,但结果不是我想要的
var result = arr.reduce(function (res, obj) {
if (!(obj.department_id in res))
res.__array.push(res[obj.department_id] = obj);
else {
res[obj.department_id].linear_meter += obj.linear_meter;
res[obj.department_id].square_meters += obj.square_meters;
}
return res;
}, {__array: []}).__array;
但输出是:
[ { department_id: '28',
linear_meter: NaN,
square_meters: NaN },
{ department_id: '56',
linear_meter: NaN,
square_meters: NaN } ]
有人知道吗? 我在 +=
之前测试过 typeof res[obj.department_id].square_meters !== "undefined"
但没有任何改变......
【问题讨论】:
标签: javascript object properties reduce