Проверять массив на наличие объекта надо до того, как этот объект добавлять в массив. Для этого используется
Array.some(). Пример:
var arr = [ {a: 5}, {a: 12}, {a: 8}, {a: 130}, {a: 44}]
var isObjectInArr = arr.some(el => el.a === 12)
console.log('Is object in array:', isObjectInArr)
А если делать совсем правильно, то можно сделать, например, вот так:
class MyObject {
constructor(prop1, prop2) {
this.prop1 = prop1
this.prop2 = prop2
}
isEqual(b) {
return MyObject.isEqual(this, b)
}
static includes(arr, a) {
return arr.some((b) => MyObject.isEqual(a, b))
}
static isEqual(a, b) {
return a.prop1 === b.prop1 & a.prop2 === b.prop2
}
}
var arr = [
new MyObject(5, 6),
new MyObject(12, 13),
new MyObject(8, 9),
new MyObject(130, 131),
new MyObject(44, 45)
]
var object = new MyObject(12, 13)
var isObjectInArr = MyObject.includes(arr, object)
console.log('Is object in array:', isObjectInArr)