Есть такой код:
let arr = [
[
[1, null, 1, 1],
[2, 2, 2, 2],
[3, 3, 3, 3]
],[
[4, 4, 4, 4, 4 ,4],
[5, 5, 5, 5],
[6, 6, 6, 6, null],
[7, 7, 7, 7],
[8, 8]
],[
[9, 9, 9, 9],
[10, 10, 10, 10],
[11, 11, 11, 11, 11],
[12, 12, 12, 12]
],
];
let res = arr.reduce(function(accumulator, current) {
current.forEach(function(item, i) {
[].push.apply(accumulator[i] = accumulator[i] || [], [].concat(item.slice(accumulator[i].length)));
});
return accumulator;
}, []);
Первый подмассив расширяется на размер следующего подмассива, если тот больше. Результат такой:
let arr = [
[1, null, 1, 1, 4, 4]
[2, 2, 2, 2]
[3, 3, 3, 3, null]
[7, 7, 7, 7]
[8, 8]
]
Как добиться такого же результата, но при этом null заполнять значениями следующего подмассива по совпадению индексов? Вот пример результата:
let arr = [
[1, 4, 1, 1, 4, 4]
[2, 2, 2, 2]
[3, 3, 3, 3, 11]
[7, 7, 7, 7]
[8, 8]
]