@krlljs

Как с помощью underscore разделить массив по 10 элементов?

Есть массив:
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

Надо чтоб вернул
[
[1,2,3,4,5,6,7,8,9,10],
[11,12,13,14,15,16,17,18,19,20]
]

Желательно с помощью underscorejs.ru/#arrays
  • Вопрос задан
  • 623 просмотра
Решения вопроса 3
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
не совсем при помощи lodash... но

function chunk(arr, n) {
    var chunks = [];
    while(arr.length > n) {
       chunks.push(arr.slice(0, n));
       arr = arr.slice(n, arr.length);
    }
    chunks.push(arr);

    return chunks;    
}
Ответ написан
Комментировать
@krlljs Автор вопроса
var a = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]

a.slice(0,10) // вернет [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


использовать цикл:
for(var data = [], g = 0, i = a.length - 1; i >=o; i=i-10) {
  data[g++] = a.slice(i,i-10)
}
Ответ написан
Комментировать
@GeneD88
QA
_underscore:
var huge_array = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20];
var size = 10;
var arrays = _.groupBy(data, function(element, index){
  return Math.floor(index/size);
});


ps: можно Lodash использовать:
_.chunk(huge_array, [size=10])
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы