gpt4 book ai didi

javascript - 通过比较另一个数组中的值在 JavaScript 中创建数组

转载 作者:行者123 更新时间:2023-11-29 18:00:51 25 4
gpt4 key购买 nike

在 JavaScript 中,我试图根据另一个数组的值创建数组,但我遇到了困难。

我有一个字符串格式(日期)的日期数组,例如

["30/09/2015", "31/10/2015", "30/11/2015", "31/12/2015"]

我有一个对象来表示多个银行账户 (balancesSortByAccId),例如

Cash - (Array size: 3)
id: 1, date: "30/09/2015", balance: 30
id: 2, date: "31/10/2015", balance: 50
id: 3, date: "30/11/2015", balance: 100

Natwest - (Array size: 2)
id: 4, date: "30/11/2015", balance: 400
id: 5, date: "31/12/2015", balance: 200

在遍历 balancesSortByAccId 中的所有帐户时,我希望能够为日期数组中每个日期的余额创建一个数组,即

[30, 50, 100, null]
[null, null, 400, 200]

我怎样才能做到这一点?

更新:jsfiddle 代码 - https://jsfiddle.net/gx8bLehb/

最佳答案

最简单的方法是将您的 cashnatwest 数组转换为按日期排序的哈希,类似于 balancesByDate:

    var balancesByDate = _.groupBy(cash, function(entry) {return entry.date});

然后使用数组 map() 函数,例如从 lodash 迭代 dates 数组,并为每个日期在 balancesByDate 哈希中查找帐户行。从该行开始,返回 map 函数中的 balance 属性。

dates.forEach(function(date){
if (balancesByDate[date]) {
results.push(_.map(balancesByDate[date], function(line){
return line.balance;
}));
} else {
results.push(null);
}
});

但是,您需要注意,您的数据集很可能包含一天的重复余额,您应该为此做好计划(我的代码每天返回一个数组)。

https://jsfiddle.net/hdpuuc5d/1/

关于javascript - 通过比较另一个数组中的值在 JavaScript 中创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35090921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com