检查对象数组中是否存在具有特定键值的对象

dev*_*p05 2 javascript arrays object ecmascript-6 reactjs

我正在尝试检查项目数组是否包含具有特定键值的对象,如果包含,只需使用新项目对象更新项目数组

[{name: example1, quantity: 2},{name: example2, quantity: 3},{name: example3, quantity: 5}]
Run Code Online (Sandbox Code Playgroud)

因此,例如,如果我推送一个具有相同名称“example1”的对象,我想检查它是否确实存在于数组中,如果存在,只需使用新数量的新对象更新它。

我尽力解释我想要什么,如果您需要更多说明,请告诉我。

cнŝ*_*ŝdk 5

Array#some()您可以使用和方法的简单组合Array#find():

if (data.some(o => o.name == toPush.name)) {
  data.find(o => o.name == toPush.name).quantity = toPush.quantity;
}
Run Code Online (Sandbox Code Playgroud)

data您的array位置在哪里,toPush您object正在尝试更新。

演示:

if (data.some(o => o.name == toPush.name)) {
  data.find(o => o.name == toPush.name).quantity = toPush.quantity;
}
Run Code Online (Sandbox Code Playgroud)