gpt4 book ai didi

javascript - _.map() 在处理真实数据时不起作用

转载 作者:行者123 更新时间:2023-12-02 16:37:48 24 4
gpt4 key购买 nike

我正在查询两个集合以获取账单和交易中的数据。

获得两者后,我为每个 billId 循环交易数组。

一旦交易数组中的 billId 与账单数组中的 _id 匹配,我就会将该交易存储在账单数组下。

所以不要有:

bill_array = [{
"_id": "549bf0597886c3763e000001",
"billName": "Leasing",
"startDate": "2014-12-25T00:00:00.000Z",
"endDate": "2017-10-14T22:00:00.000Z",
"amount": 16500,
"type": 4,
"timestamp": "2014-12-25T11:09:13.957Z",
"__v": 0
}]

我可以拥有:

bill_array = [{"_id": "549bf0597886c3763e000001",
"billName": "Leasing",
"startDate": "2014-12-25T00:00:00.000Z",
"endDate": "2017-10-14T22:00:00.000Z",
"amount": 16500,
"type": 4,
"transactions": {[all transactions]}
"timestamp": "2014-12-25T11:09:13.957Z",
"__v": 0}]

下面的代码在 my JSfiddle test 中运行但是,当我尝试使用真实数据(来自数据库)时,我无法获取将新对象插入到 bills 数组中的映射。这是工作示例:http://jsfiddle.net/dennislaymi/usanwkcL/

这是我机器上的(不起作用)代码:

app.get('/getbills', function(req, res) {
//get all bills
allBills = Bills.find().exec();
//get all transactions
allTransactions = Transactions.find().exec();
//aggregate bills and transactions in a promise
promise.all([allBills, allTransactions]).then(function(results) {
var bills = results[0];
var transactions = results[1];

_.map(bills, function(bValue) {
bValue.transactions = [];
_.each(transactions, function(tValue) {
if (tValue.billId == bValue._id) {
bValue.transactions.push(tValue);
}
});
console.log("transactons: " + bValue.transactions);
return bValue.transactions;
});
console.log(bills);
res.send(bills);
});
});

最佳答案

_.map 是一个不可变的操作,这意味着它不会更改初始对象。

如果您想用映射数据覆盖它,您应该编写如下内容:

bills = _.map(bills, function (bValue) {
bValue.transactions = [];
_.each(transactions, function (tValue) {
if (tValue.billId == bValue._id) {
bValue.transactions.push(tValue);
}
});
return bValue;
});

我还建议使用类似 _.filter 的内容而不是您的情况下的 _.each :

bills = _.map(bills, function (bValue) {
bValue.transactions = _.filter(transactions, function (tValue) {
return (tValue.billId == bValue._id);
});
return bValue;
});

关于javascript - _.map() 在处理真实数据时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27765177/

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