У меня есть два массива (a
и b
), где каждый элемент должен быть перемещен в другой массив (c
)
Для этого я использовал метод push/slice, но он добавляет скобки в каждый элемент.
Вот код:
let a = [0, 6, 2, 0, 1, 1];
let b = [1, 3, 9, 0, 0, 1];
let c = [];
for (let i = 5; a.length > 0 || b.length > 0; i--) {
c.push(a.splice(i, 1), b.splice(i, 1));
}
console.log(c) // I would like [element1, element2, etc]
Вместо этого есть другой метод (для замены c.push(a.splice(i, 1), b.splice(i, 1))
) который не добавляет скобки к каждому элементу ?
Спасибо!
c.push(...a.splice(i, 1), ...b.splice(i, 1))
Я не уверен, что понимаю, почему
.splice()
вообще задействован, но проблема в том, что.splice()
возвращает массив.@Pointy - возможно, он хочет удалить элементы из a и b?
используйте
pop
вместоsplice
(pop
не требует аргументов)@JaromandaX, возможно, но в вопросе нет объяснения.
c.push(a.pop(), b.pop())
@Pointy - да, я знаю "p
удаление элементов - хороший способ "переместить" их, чтобы убедиться, что у вас нет двойников
@Thomas - был дан лучший вариант ... вместо этого используйте .pop (), поскольку ваш код всегда удаляет элементы с конца каждого массива.
используя ваш код (и .pop), массив результатов находится в обратном порядке ... это требование?
Хорошо бы сохранить первоначальный порядок...
Нужно ли удалять элементы из
a
иb
? Или цель просто объединить их вc
?Если нет необходимости очищать массивы
a
иb
, достаточно простой индексации массива.