var firstList = ["Александр", "Петров"];
var secondList = ["Петров", "Иванов"];
Мне нужно получить результат:
var resultList = ["Александр", "Петров", "Иванов"];
Итоговый массив должен содержать только уникальные элементы без повторений. Как правильно соединить два массива в JavaScript, чтобы получить только уникальные значения из каждого массива в том порядке, в котором они были добавлены в исходные массивы?
Еще можно через concat() и filter(): var resultList = firstList.concat(secondList.filter(item => !firstList.includes(item))); Порядок элементов сохраняется, дубликаты из второго массива не добавляются. На больших массивах работает медленнее, но для обычных задач норм.
я обычно использую простой цикл for - проверенный способ который всегда работает. Копирую первый массив, прохожу по второму и добавляю элементы которых еще нет: var resultList = firstList.slice(); for(var i = 0; i < secondList.length; i++) { if(resultList.indexOf(secondList[i]) === -1) { resultList.push(secondList[i]); } }. выглядит старомодно, но зато понятно что происходит и работает в любых браузерах
Попробуй Set, он сам удаляет дубликаты: let resultList = [ ...new Set([...firstList, ...secondList]) ];. Это простой и элегантный способ получить нужный результат без заморочек!