javascript - 如何在javascript中解决此代码?将具有相同值的不同对象组合成单个数组
问题描述
输入
var arr =
[
[
Packet { status: 'Apple', count: '2' },
Packet { status: 'Lion', count: '2' }
],
[
Packet { status: 'Donkey', count: '2' },
Packet { status: 'Apple', count: '2' },
Packet { status: 'Cat', count: '1' }
],
[
Packet { status: 'Apple', count: '4' },
Packet { status: 'Cat', count: '2' }
]
]
我需要输出为
arr =
[
Packet { status: 'Donkey', count: '2' },
Packet { status: 'Apple', count: '8' },
Packet { status: 'Cat', count: '3' },
Packet { status: 'Lion', count: '2' }
]
这个怎么解决??被困了一个星期??..................................................... ..................................................
解决方案
您可以使用reduce
和获取Object.values
对象:
const arr = [[{ status: 'Apple', count: '2' }, { status: 'Lion', count: '2' }], [{ status: 'Donkey', count: '2' }, { status: 'Apple', count: '2' }, { status: 'Cat', count: '1' }], [{ status: 'Apple', count: '4' }, { status: 'Cat', count: '2' }]];
const result = Object.values(arr.flat().reduce((a,
{ status, count }) => ((a[status] ??= { status, count: 0 }).count += +count,
a), {}));
console.log(result);
推荐阅读
- javascript - 车把,访问父每个循环变量
- javascript - 回声 JavaScript
- javascript - Redux-thunk:API 响应保持挂起
- solr - 在 AWS 中从独立 Solar 迁移到 SolrCloud
- javascript - 通过辅助函数渲染时,我得到:“对象作为 React 子对象无效”错误
- java - 如何使用apache poi重命名excel中的名称
- codenameone - 主题文件中的背景更改是否会导致图像出现问题?
- javascript - 使用 jQuery 调整画布大小
- javascript - 在 Javascript 中,我需要从块范围访问功能范围 var,我已经有同名的 var
- java - 如何生成随机字符串并在整个代码中使用相同的生成字符串?