gpt4 book ai didi

javascript - 使用Lodash过滤2个集合

转载 作者:行者123 更新时间:2023-11-28 18:13:16 25 4
gpt4 key购买 nike

我对如何执行以下操作感到困惑。我有 2 个对象:

新价格表:

[{id:1, updatedPrice:22}, {id:4, updatedPrice:23}]

当前价格列表:

[{id:1, price:200, name:"carrot}, {id:2, price:100, name:apple}]

如果某个对象有更新的价格,则价格会更新,如果没有,则价格保持不变。理想情况下,我想返回如下所示的结果:

[{id:1, price:22},{id:2, price:100}, {id:3, price:23}]

为此,我将获取未更改价格的列表并将其附加到新价格中,但是,我似乎不知道如何获取未更改价格的列表。我还想知道是否可以一步完成这一切。

var unChangedPrices = _(currPriceList).reject('id').at(newPriceList.id);

最佳答案

如果您可以将“updatedPrice”重命名为“price”,这可以变得像这样简单

_.forEach(p1, function(obj){
_.merge(_.find(p2, {"id": obj.id}), obj)
});

如果您不更改名称,它将是这样的,

enter image description here

更新:

使用它可以将 p1 中的所有内容包含在 p2 中,即使其 id 不匹配

_.forEach(p1, function(obj){
var p2Obj = _.find(p2, {"id": obj.id});
if(p2Obj){
_.merge(p2Obj, obj);
}else{
p2 = _.concat(p2,[p2Obj]);
}
});

关于javascript - 使用Lodash过滤2个集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41181205/

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