Соединить два массива, смешивая элементы
Мне нужно соединить два массива, чтобы при переносе элементы одного массива становились на определенное место вместо других элементов. Пример:
const arr1 = [1, 2, 3, 4, 5, 6]
const arr2 = [11, 22, 33, 44, 55 ,66]
result = [1, 2, 3, 11, 22, 33, 4, 5, 6, 44, 55, 66]
Я думал что можно сделать с помощью цикла, с проверкой если индекс % 3 === 0
for (let i = 0; i < arr1.length; i++) {
if (i % 3 === 0)
arr1.splice(i, 0, ...)
}
Но не знаю как указать методу splice что нужно вставить только 3 элемента массива, а не весь массив сразу
Ответы (1 шт):
Автор решения: ksa
→ Ссылка
Как вариант...
const arr1 = [1, 2, 3, 4, 5, 6]
const arr2 = [11, 22, 33, 44, 55 ,66]
const n1 = Math.trunc(arr1.length / 3) + (arr1.length % 3 ? 1 : 0)
const n2 = Math.trunc(arr2.length / 3) + (arr2.length % 3 ? 1 : 0)
const n = Math.max(n1, n2)
const a = []
for (let i = 0; i < n; i++) {
const j = 3 * i
a.push(...arr1.slice(j, j + 3))
a.push(...arr2.slice(j, j + 3))
}
console.log(a)