vue.js - 我不能在 Vue.js 中使用计算的 GroupBy 数组
问题描述
我需要这方面的帮助。谢谢你。
我有一个对象:
Funding : [
{person_id:'1';
Amount : '100'},
{person_id:'1';
Amount : '200'},
{person_id:'2';
Amount : '150'},
我想按 person_id 进行 groupBy Funding 并获得每个组中 Amount 的总和。我使用此代码但无法正常工作..
Groupe(array,key) {
const result = {}
array.forEach(funding => {
if (!result[funding[person_id]]){
result[funding[person_id]] = []
}
result[funding[person_id]].push(item)
})
return result
}
解决方案
我创建了两个不同的示例,一个函数将返回其中一个键的总和。在第二个中,它将返回所有键的总和。
这是该https://codepen.io/aquilesb/pen/BvbqMd的代码笔
const data = [
{
person_id:'1',
amount : '100'},
{
person_id:'2',
amount : '150'
},
{
person_id:'1',
amount : '150'
},
{
person_id:'2',
amount : '70'
}
];
const personID = '1';
// return by a key
const groupByKey = (list, key) => list.reduce((acc, item) => {
if (item.person_id === key) {
return parseInt(item.amount, 10) + acc;
}
return acc;
}, 0);
//return the sum of all keys
const groupAll = list => list.reduce((acc, item) => {
const accAmout = acc[item.person_id] || 0;
return Object.assign({}, acc, {[item.person_id]: accAmout + parseInt(item.amount, 10)});
}, {});
console.log("groupByKey", groupByKey(data, personID));
console.log("groupAll", groupAll(data));
推荐阅读
- python - 如何在已安装的应用程序中使用 PRAW
- php - 无法从 php mac 执行长时间运行的 python 脚本
- javascript - 从父窗口关闭由表单提交打开的子窗口,目标=“_blank”
- c# - 在 Xamarin 中每 20 分钟提出一个方法
- python - 我们如何使用 word2vec 表示来实现词义消歧?
- angular - 带有外观轮廓的 mat-form-field 效果不佳
- c++ - C++17 推断基于 lambda 的访问者的返回类型
- ios - SwiftUI ScrollView 不显示从 ObservableObject 获取的结果
- couchbase - 管理 couchbase 上的负载和超时
- node.js - 获取 Google 令牌以使用 Cognito 访问 google 服务以获得 Alexa 技能