23.05.2019, 11:55
|
Аспирант
|
|
Регистрация: 11.05.2019
Сообщений: 30
|
|
Слияние двух массивов и удаление дубликатов
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);
Насколько я прав? Может можно это улучшитЬ?
Последний раз редактировалось DarkPhoenix, 23.05.2019 в 12:20.
|
|
23.05.2019, 12:08
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
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.
|
|
23.05.2019, 12:20
|
Аспирант
|
|
Регистрация: 11.05.2019
Сообщений: 30
|
|
Сообщение от рони
|
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.
|
Спасибо!
|
|
23.05.2019, 15:24
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
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);
Вариант
|
|
23.05.2019, 16:56
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
Poznakomlus,
вариант
const mergeArray = (...a) => [...new Set(a.flat())]
|
|
23.05.2019, 17:15
|
|
Профессор
|
|
Регистрация: 13.03.2013
Сообщений: 1,572
|
|
рони,
flat это круто
|
|
|
|