Чтобы проверить, существует ли уже name
, используйте find
:
if (!arr.some(({ name }) => name === obj.name)) arr.push(obj);
function addUniq(arr, obj) {
if (!arr.some(({ name }) => name === obj.name)) arr.push(obj);
}
const uniqArr = [];
const sara = { name: 'sara' };
const leyla = { name: 'leyla' };
const mera = { name: 'mera' };
addUniq(uniqArr, sara);
addUniq(uniqArr, mera);
addUniq(uniqArr, leyla);
addUniq(uniqArr, sara);
addUniq(uniqArr, mera);
uniqArr.forEach(e => console.log(e));
.as-console-wrapper { max-height: 100% !important; top: auto; }
Вы также можете добавить этот метод непосредственно к Array.prototype
объекту:
Array.prototype.addUniq = function(obj) {
if (!this.some(({ name }) => name === obj.name)) this.push(obj);
}
const uniqArr = [];
const sara = { name: 'sara' };
const leyla = { name: 'leyla' };
const mera = { name: 'mera' };
uniqArr.addUniq(sara);
uniqArr.addUniq(mera);
uniqArr.addUniq(leyla);
uniqArr.addUniq(sara);
uniqArr.addUniq(mera);
uniqArr.forEach(e => console.log(e));
.as-console-wrapper { max-height: 100% !important; top: auto; }