преобразование одного массива в двумерный массив на 6

#javascript

#javascript

Вопрос:

Я пытаюсь преобразовать и объединить мой единый массив в двумерный массив. Я использую map для этого, но я не могу получить желаемый результат. Могу ли я задать какие-либо предложения о том, как этого добиться?

Данные приведены ниже:

           var singelArr = ['a','b','c','d','e','f','a','b','c','d','e','f','a','b','c','d','e','f'];

          var doubleArr = [
                                ['','','','','',''],
                                ['','','','','',''],
                                ['','','','','',''],
                                ['','','','','',''],
                                ['','','','','',''],

                          ]
 

И теперь мой ожидаемый результат:

  output = [
           ['a','b','c','d','e','f'],
           ['b','c','d','e','a','f'],
           ['b','c','d','e','a','f'],
           ['','','','','',''],
           ['','','','','','']

 ]; 
 

Что я сделал до сих пор, так это https://jsfiddle.net/jc3v25bs /. Я могу отобразить элемент данных на 6, но проблема в том, что я не уверен, как я могу объединить его с моей doubleArr переменной. Я также предпочитаю что-то, что будет быстрее зацикливаться.

Любая идея очень ценится. Спасибо.

Ответ №1:

Вы можете использовать slice() функцию для разделения первого массива. Затем вы можете создать свой вывод, объединив результат с последней частью второго массива.

 let singleArr = ['a','b','c','d','e','f','a','b','c','d','e','f','a','b','c','d','e','f'];

let doubleArr = [
  ['','','','','',''],
  ['','','','','',''],
  ['','','','','',''],
  ['','','','','',''],
  ['','','','','',''],

];

let chunkedArr = [];
for(i=0,j=0; i<singleArr.length; i =6, j  ){
    chunkedArr[j] = singleArr.slice(i, i 6);
}
let output = chunkedArr.concat(doubleArr.slice(chunkedArr.length));

console.log(output);