@tosterComposter1

Как объединить 2 массива в один?

Есть два массива:
[{name:'test', lastname: 'test', gender:'f'},{name:'test1', lastname: 'test1', gender:'f'},{name:'test2', lastname: 'test2', gender:'m'}]

и
[{name:'test21', lastname: 'test21', gender:'f'},{name:'test1', lastname: 'test1', gender:'f'},{name:'test2', lastname: 'test2', gender:'m'},{name:'test22', lastname: 'test22', gender:'m'}]

Как элементы (только те, у которых отличается name) второго массива добавить в первый?
  • Вопрос задан
  • 655 просмотров
Решения вопроса 2
might
@might
javascript developer
var arr1 = [{name:'test', lastname: 'test', gender:'f'},{name:'test1', lastname: 'test1', gender:'f'},{name:'test2', lastname: 'test2', gender:'m'}],
    arr2 = [{name:'test21', lastname: 'test21', gender:'f'},{name:'test1', lastname: 'test1', gender:'f'},{name:'test2', lastname: 'test2', gender:'m'},{name:'test22', lastname: 'test22', gender:'m'}];

function arrayUnique(array) {
    var a = array.concat();
    for(var i=0; i<a.length; ++i) {
        for(var j=i+1; j<a.length; ++j) {
            if(a[i].name === a[j].name)
                a.splice(j--, 1);
        }
    }

    return a;
}

var arr3 = arrayUnique(arr1.concat(arr2));
Ответ написан
Комментировать
TekVanDo
@TekVanDo
Javascript Developer
примерно так
arr1 = arr1.concat(arr2.filter((one) => {
   return !arr1.find((el) => el.name === one.name);
}))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы