ЦЕЛИExtract «N» значение из массива
«Коренастый Monkey» Проблема: Создать новый многомерный массив из заданного массива («обра») и номера («размера»). Новый многомерный массив должен создавать длины массивов, равные переменной 'size'.
Пример # 1
chunk(['a', 'b', 'c', 'd'], 2);
var answer = [];
function chunk(arr,size){
//do something
};
return answer
ожидаемый ответ # 1
answer = [['a','b'],['c','d']];
Пример # 2
Ниже приводится examp le при наличии нечетного числа элементов/размеров. В такой ситуации ожидаемый результат состоит в том, чтобы иметь группу «остаток».
chunk(['a', 'b', 'c', 'd'], 3);
var answer = [];
function chunk(arr,size){
//do something
};
return answer
ожидаемый ответ # 2
answer = [['a','b','c'],['d']];
MY псевдокод/ПОДХОД
var final = [];
function chunk(arr, size) {
//extract number of elements from 'arr' = 'size'
var extract = function{
//HELP! [INSERT LOGIC]
};
//add extracted elements to 'group' array
var group = [extract];
//push 'group' to 'final' array for multidimensional array
final.push(group);
//return final'
return final;
}
chunk(['a', 'b', 'c', 'd'], 2);
ВОПРОСЫ
- Я смотрел @ .forEach(), для (в) петли, .slice() и т.д., но безрезультатно. Все мои подходы приведут к циклическому перемещению по массиву, но не к их «спариванию».
- Я слишком усложняю вещи? Есть ли более прямой подход, чем мой псевдокод/подход?
что-то вроде 'в то время как (х = arr.splice (-2,2) .length) array2.push (x); ' – dandavis
Сколько раз вы хотите группировать элементы в группах по два? Это всегда длина массива, кратная размеру? – vasilenicusor
@ dandavis Правильно ли в этом анализе: вы используете splice() для циклического перехода по индексу и удаления последних записанных значений? – jonplaca