Два массива и объекты внутри них
Есть два массива
let store = {
users: [
{name: 'Tol', age: 13},
{name: 'Tol2', age: 15},
]
}
let newData = {
users: [
{name: 'Tol', age: 13},
{name: 'Tol3', age: 15},
{name: 'Tol4', age: 15},
]
}
Есть функция, которая добавляет users из массива newData в массив users объекта Store
function addUser (newData.users) {
store.users = store.users.concat(newData.users);
}
Но мне надо в этой функции еще проверять, а не существует ли уже в массиве store.users такого юзера и если не существует, то только тогда проводить concat(), иначе пропускать добавление.
Ответы (2 шт):
Автор решения: Pavel Grishaev
→ Ссылка
function addUser( newData ){
newData.users.forEach( newUser => {
let has = store.users.some( user => user.name === newUser.name );
if( !has ) store.users.push( newUser );
});
}
Автор решения: Igor
→ Ссылка
let store = {
users: [
{name: 'Tol', age: 13},
{name: 'Tol2', age: 15},
]
}
let newData = {
users: [
{name: 'Tol', age: 13},
{name: 'Tol3', age: 15},
{name: 'Tol4', age: 15},
]
}
function addUser(newUsers) {
store.users = store.users.concat(
newUsers.filter(nu => !store.users.find(su => su.name == nu.name))
);
}
addUser(newData.users);
console.log(store.users.length, store.users);