Функция принимает неизвестное количество массивов в качестве аргументов.Эти массивы также могут состоять из вложенных массивов.Мне нужно выбросить дубликаты и вернуть один новый массив (без дубликатов).Элементы массива не должны отображаться в отсортированном виде, но в их порядке, они стояли в своем исходном массиве.
Я использовал map
, чтобы поместить каждый массив в один новый массив.Я использовал reduce
, чтобы объединить массивы.Я использовал Set
, чтобы бросать дубликаты.
Это работало только в этом случае
uniteUnique([[1, 2, 3], [5, 2, 1], [2, 3, 4]]);
Я не знаю, почему это не работаетв этих случаях:
Argument Fail1 // uniteUnique([1, 3, 2], [5, 2, 1, 4], [2, 1]);
Argument Fail2 // uniteUnique([1, 3, 2], [1, [5]], [2, [4]]);
Argument Fail3 // uniteUnique([1, 2, 3], [5, 2, 1]);
Это мой код
function uniteUnique(arr) {
let test = [];
arr.map(function(argu) {
test.push(argu);
}, []);
let flat = test.reduce(function(a, b) {
return a.concat(b);
});
let unique = new Set(flat);
console.log(unique);
}
Что не так?Было бы очень любезно, если бы кто-нибудь мог сказать мне, почему мой код не работает с Argument Fail 1-3.
В этих случаях выдается ошибка:
return a.concat (b);/ n TypeError: a.concat не является функцией
Ожидаемый результат: uniteUnique([1, 3, 2], [5, 2, 1, 4], [2, 1])
должен вернуть [1, 3, 2, 5, 4]
.uniteUnique([1, 3, 2], [1, [5]], [2, [4]])
должен вернуть [1, 3, 2, [5], [4]]
.uniteUnique([1, 2, 3], [5, 2, 1])
должен вернуть [1, 2, 3, 5]
.uniteUnique([1, 2, 3], [5, 2, 1, 4], [2, 1], [6, 7, 8])
должен вернуть [1, 2, 3, 5, 4, 6, 7, 8]
.