Suppose there is an array of 233 elements: [{},{},{},...,{}] ;

How to break such an array into subarrays, so that each subarray has no more than 100 elements? (number of elements may vary)

For example: [ [0-99], [100-199], [200-232] ] ;

    5 answers 5

    One solution, through the cycle:

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

      Here is an option

      Splits an array into SIZE size subarrays

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

        You can do this:

         // Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ массив ΠΈΠ· 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); 

          Also take part:

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

             const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; const array_size = 3; const sliced_array = []; for (let i = 0; i <array.length; i += array_size) { sliced_array.push(array.slice(i, i + array_size)); } console.log(sliced_array);