Как разбить массив на подмассивы?

473
19 октября 2017, 12:25

Допустим, есть массив из 233 элементов: [{},{},{},...,{}];

Как разбить такой массив на подмассивы, чтобы в каждом подмассиве было не более 100 элементов? (число элементов может меняться)

Например так: [ [0-99], [100-199], [200-232] ];

Answer 1

Одно из решений, через цикл:

let array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; //массив, можно использовать массив объектов 
let size = 3; //размер подмассива 
let subarray = []; //массив в который будет выведен результат. 
for (let i = 0; i <Math.ceil(array.length/size); i++){ 
    subarray[i] = array.slice((i*size), (i*size) + size); 
} 
console.log(subarray);

Answer 2

Вот вариант

Разбивает массив на подмассивы размера SIZE

const s = [{a:1},{a:2},{a:3},{a:4},{a:5},{a:6}]; 
const SIZE = 4; 
 
const res = s.reduce((p,c)=>{ 
  if(p[p.length-1].length == SIZE){ 
    p.push([]); 
  } 
   
  p[p.length-1].push(c); 
  return p; 
}, [[]]); 
 
console.log(res);

Answer 3

Можно сделать таким образом:

// Создаем массив из 233 элементов 
var array = []; 
for (var x = 1; x <= 233; x++) { 
    array.push(x); 
} 
 
var subArray = [], 
    subIndex = -1; 
 
for (var i = 0; i < array.length; i++) { 
    // Каждые 200 итераций меняем ключ для добавления в подмассив 
    if (0 === i % 200) { 
        subIndex++; 
    } 
    if (subArray[subIndex] === undefined) { 
        subArray[subIndex] = []; 
    } 
    subArray[subIndex].push(array[i]); 
} 
 
console.log(subArray);

Answer 4

Тоже поучаствую:

const array = [], result = [], length = 100; // Объявляем переменные 
for (let x = 1; x <= 233; x++) array.push(x); // Собираем массив 
while(array.length) result.push(array.splice(0,length)); // Разбираем массив 
console.log(result);

READ ALSO
Диапазон времени

Диапазон времени

Мне нужно выводить модальное окно в определенный диапазон времени, например с 8:00 до 00:00

428
Изменить размер ряда при экспорте Datatables?

Изменить размер ряда при экспорте Datatables?

Как при экспорте excel файла в DataTables можно изменить высоту всего ряда в файле?

297
Dropzonejs with Rails add files categories from the page

Dropzonejs with Rails add files categories from the page

Добрый деньПытаюсь реализовать drag and drop с помощью dropzonejs-rails + Paperclip

293