3 回答

TA貢獻1804條經驗 獲得超7個贊
您可以使用Array.find
let newObj={ name:'X',imageURL:'..../'}
if(!array.find(x=> x.name == newObj.name))
array.push(newObj)

TA貢獻1777條經驗 獲得超3個贊
您需要使用或類似的函數進行檢查,如下所示:find
const arr = [{ name: 1 }, { name: 2 }];
function append(arr, newEl) {
if (!arr.find(el => el.name == newEl.name)) {
arr.push(newEl);
}
}
append(arr, { name: 2 }); // won't be added
console.log(arr);
append(arr, { name: 3 }); // will be added
console.log(arr);
Run code snippetHide resultsExpand snippet

TA貢獻1801條經驗 獲得超8個贊
由于您沒有提到使用的變量。我將假設“arr”作為數組,“person”作為要檢查的新對象。
const arr = [{name: 'John', imageURL:'abc.com'},{name: 'Mike', imageURL:'xyz.com'}];
const person = {name: 'Jake', imageURL: 'hey.com'};
if (!arr.find(
element =>
element.name == person.name)
) {
arr.push(person);
};
如果名稱不相同,則不會將 person 對象推送到數組中。
添加回答
舉報