【发布时间】:2018-01-26 13:09:40
【问题描述】:
我有一个对象数组,我想组合具有相同日期值的对象,所以我有一个类似的数组。我正在使用 .map(i => ) 遍历它们并检查前一个索引,但我得到了错误的值。
[{ id: '8',
name: 'hfh',
consumed_date: '2017-03-14',
calories: 8952 },
{ id: '7',
name: 'onion',
consumed_date: '2017-03-14',
calories: 224},
{ id: '6',
name: 'onion',
consumed_date: '2017-03-14',
calories: 279},
{ id: '2',
name: 'Ready-to-Serve Chocolate Drink',
consumed_date: '2017-01-01',
calories: 3036} ]
我想得到一个像
这样的数组[{date: 2017-03-14,
calories: 9455},
date: 2017-01-01,
calories: 3036}]
【问题讨论】:
-
你应该看看reduce。
-
就像在您的示例中一样,您可能将数据组合成一个长度 > 1 的数组。因此,array.reduce 不起作用,因为我认为 reduce 总是会返回一个结果。跨度>
-
但是你可以用 [] 来初始化它并在reduction里面修改这个数组。
标签: javascript arrays sorting for-loop ecmascript-6