【发布时间】:2018-06-28 16:05:28
【问题描述】:
我有一个对象数组,我需要检查数组中是否已经存在类似的对象。 例如,是否存在具有相同品牌和型号属性的对象(福特福克斯):
{
make: 'Ford',
model: 'Focus',
color: 'red',
year: 2016
}
在这个数组中?
[
{
make: 'Ford',
model: 'Focus',
color: 'blue',
year: 2008
},
{
make: 'Ford',
model: 'Mustang',
color: 'red',
year: 2011
},
{
make: 'Chevy',
model: 'Malibu',
color: 'blue',
year: 2012
},
{
make: 'Ford',
model: 'Focus',
color: 'black',
year: 1999
}
]
我更喜欢 ES6 方法,但也可以使用 lodash。 Lodash 有 _.some 但据我所知,它匹配整个对象(不仅仅是所需的特定属性)或仅一个属性。此外,我需要 _.pullAllWith 之类的东西,我可以在其中删除包含这些特定属性的所有对象(即删除所有包含福特福克斯的对象)。
【问题讨论】:
-
你有任何你已经尝试过的代码可以分享吗?
-
我正在处理的实际代码比这个例子复杂得多。我已经阅读了各种 Lodash 方法,并且 _.some 和 _.pullAllWith 方法是我能找到的最接近我需要的方法。我也尝试使用 .find 和 .findIndex 但无法正常工作。
-
如果您的代码有问题,请具体询问,发布您的尝试。只是说 “我需要类似的东西” 并不是一个好问题。
-
@trincot 我强烈反对。与我发布更长、更复杂的示例相比,未来来到这里的任何人都将能够遵循这个示例并更快、更轻松地从中学习。没有必要发布需要更多解释和更多内容供每个人阅读的内容。另外,如果我可以使用其中一个答案并让它与我的代码一起使用,那么这就解决了我的问题。这是发布问题的更好方法。
标签: javascript arrays json object lodash