#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);