Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Слияние двух массивов и удаление дубликатов (https://javascript.ru/forum/misc/77583-sliyanie-dvukh-massivov-i-udalenie-dublikatov.html)

DarkPhoenix 23.05.2019 11:55

Слияние двух массивов и удаление дубликатов
 
const firstArray = [1, 2, 3, 16, 30, 42, 643, 95]; 
const secondArray = [2, 30, 1, 16, 42, 512, 95]; 
var thirdArray = [];

function mergeArray (firstArray,  secondArray){
  thirdArray = firstArray.concat(secondArray.filter(i => firstArray.indexOf(i) ===-1)); 
    console.log(thirdArray);
}

const mergedArray = mergeArray(firstArray, secondArray);






Насколько я прав? Может можно это улучшитЬ?

рони 23.05.2019 12:08

DarkPhoenix,
const firstArray = [1, 2, 3, 16, 30, 42, 643, 95];
 const secondArray = [2, 30, 1, 16, 42, 512, 95];

 function mergeArray (firstArray, secondArray){
  return Array.from(new Set([...firstArray, ...secondArray]))
 }

 const mergedArray = mergeArray(firstArray, secondArray);
 console.log(mergedArray);

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

DarkPhoenix 23.05.2019 12:20

Цитата:

Сообщение от рони (Сообщение 508149)
DarkPhoenix,
const firstArray = [1, 2, 3, 16, 30, 42, 643, 95];
 const secondArray = [2, 30, 1, 16, 42, 512, 95];

 function mergeArray (firstArray, secondArray){
  return Array.from(new Set([...firstArray, ...secondArray]))
 }

 const mergedArray = mergeArray(firstArray, secondArray);
 console.log(mergedArray);

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Спасибо!

Vlasenko Fedor 23.05.2019 15:24

const firstArray = [1, 2, 3, 16, 30, 42, 643, 95];
const secondArray = [2, 30, 1, 16, 42, 512, 95];
const thirdArray = [5, 6, 16, 30, 99, 1, 0];
const mergeArray = (...a) => [...new Set([].concat(...a))]

const mergedArray = mergeArray(firstArray, secondArray);
console.dir(mergedArray);
const newArray = mergeArray(firstArray, secondArray, thirdArray);
console.dir(newArray);

Вариант :dance:

рони 23.05.2019 16:56

Poznakomlus,
вариант
const mergeArray = (...a) => [...new Set(a.flat())]

Vlasenko Fedor 23.05.2019 17:15

рони,
flat это круто :thanks:


Часовой пояс GMT +3, время: 05:04.