Добавление объекта в массив объектов без повторений
я добавляю в массив объектов объект в двумя полями, как сделать чтоб добавлялись лишь уникальные объекты, у них всех id уникальный. Потому что при выборе одного и того же объекта он будет добавлен несколько раз.
const choiseOrg = (title, value) => {
setoptionOrg('Выберите организацию')
if (user.selecetedOrg === undefined) {
setUser({ ...user, 'selecetedOrg': [{'value':value,'title': title}] })
} else {
const setelect = user.selecetedOrg;
setUser({ ...user, 'selecetedOrg': [...setelect, {'value':value,'title': title}] })
}
}
Ответы (1 шт):
Автор решения: Евгений Кулик
→ Ссылка
Не понимаю о чем речь, не вижу где тут id и у какого объекта они уникальны.
Попробуйте проверять на уникальночть через includes
if(!array.includes(user.id)) {
...добавить в обьект
}
includes проверяет, есть ли такое значение в array
--- Дополнение
Вот, надеюсь понятно будет:
let user = {
selectedOrg: [
{value:1,title:'text'},
{value:2,title:'text'},
{value:3,title:'text'}
]
}
const choseOrg = (title, value) => {
if(!user.selectedOrg.find(i => i.value === value)) {
user.selectedOrg.push({value: value, title: title})
console.log('добавлено: ', {value:value, title: title})
} else {
console.log('пропущено: ', {value:value, title: title})
}
}
choseOrg('text2',1) //-> пропущено, потому что такой value уже есть
choseOrg('text2',3) //-> пропущено, потому что такой value уже есть
choseOrg('text2',4) //-> добавлено