【发布时间】:2021-06-27 21:44:04
【问题描述】:
我需要检查“食物”数组中的对象是否彼此相等,以及那些 - 组合成一个添加量和 mody.amount 并保持其余部分不变。这只是为了更好地显示订单数据。我尝试使用 lodash 库和 reduce,但我不知道如何构造这个嵌套对象(mody)也添加值的函数,如果 isEqual 返回 false,请保留对象同时连接相同的对象。
我尝试了什么:
obj1.reduce((prev, next) => _.isEqual(prev, next) ? {...prev, amount: prev.amount + next.amount} : next
现在看起来是这样的:
const food = [
{
"id": 1,
"name": "chicken",
"price": 6,
"amount": 1,
"mody": [
{
"id": 33,
"name": "cheese",
"price": 1,
"amount": 1
},
{
"id": 34,
"name": "chips",
"price": 2,
"amount": 1
}
]
},
{
"id": 1,
"name": "chicken",
"price": 6,
"amount": 1,
"mody": [
{
"id": 33,
"name": "cheese",
"price": 1,
"amount": 1
},
{
"id": 34,
"name": "chips",
"price": 2,
"amount": 1
}
]
},
{
"id": 2,
"name": "pizza",
"price": 6,
"amount": 2,
"mody": [
{
"id": 12,
"name": "extra cheese",
"price": 2,
"amount": 1
}
]
}
]
并且需要类似的东西:
const food = [
{
"id": 1,
"name": "chicken",
"price": 6,
"amount": 2,
"mody": [
{
"id": 33,
"name": "cheese",
"price": 1,
"amount": 2
},
{
"id": 34,
"name": "chips",
"price": 2,
"amount": 2
}
]
},
{
"id": 2,
"name": "pizza",
"price": 6,
"amount": 2,
"mody": [
{
"id": 12,
"name": "extra cheese",
"price": 2,
"amount": 1
}
]
}
]
【问题讨论】:
-
很遗憾没有。一起添加值,但不检查对象是否相等并且内部没有嵌套更深的对象
标签: javascript arrays lodash reduce