0

Consider the following JavaScript Array:

const allRows = [
        {id: 1, name: Name 1},
        {id: 2, name: Name 1},
        {id: 3, name: Name 1},
        {id: 4, name: Name 1},
        {id: 5, name: Name 1},
        {id: 6, name: Name 1},
        {id: 7, name: Name 1},
        {id: 8, name: Name 1},
        {id: 9, name: Name 1},
        {id: 10, name: Name 1},
        {id: 11, name: Name 1},
        {id: 12, name: Name 1},
        {id: 13, name: Name 1},
        {id: 14, name: Name 1},
        {id: 15, name: Name 1},
        {id: 16, name: Name 1},
        {id: 17, name: Name 1},
        {id: 18, name: Name 1},
        {id: 19, name: Name 1},
        {id: 20, name: Name 1},
        {id: 21, name: Name 1},
        {id: 22, name: Name 1},
        {id: 23, name: Name 1},
        {id: 24, name: Name 1},
        {id: 25, name: Name 1},
        {id: 26, name: Name 1},
        {id: 27, name: Name 1},
        {id: 28, name: Name 1},
        {id: 29, name: Name 1},
        {id: 30, name: Name 1},
    ];

// want to loop through the array and convert it to the array as written below

let rowsPaginated = [
    [
        {id: 1, name: Name 1},
        {id: 2, name: Name 1},
        {id: 3, name: Name 1},
        {id: 4, name: Name 1},
        {id: 5, name: Name 1},
        {id: 6, name: Name 1},
        {id: 7, name: Name 1},
        {id: 8, name: Name 1},
        {id: 9, name: Name 1},
        {id: 10, name: Name 1}
    ],
    [
        {id: 11, name: Name 1},
        {id: 12, name: Name 1},
        {id: 13, name: Name 1},
        {id: 14, name: Name 1},
        {id: 15, name: Name 1},
        {id: 16, name: Name 1},
        {id: 17, name: Name 1},
        {id: 18, name: Name 1},
        {id: 19, name: Name 1},
        {id: 20, name: Name 1}
    ],
    [
        {id: 21, name: Name 1},
        {id: 22, name: Name 1},
        {id: 23, name: Name 1},
        {id: 24, name: Name 1},
        {id: 25, name: Name 1},
        {id: 26, name: Name 1},
        {id: 27, name: Name 1},
        {id: 28, name: Name 1},
        {id: 29, name: Name 1},
        {id: 30, name: Name 1}
    ]
];

I am thinking to convert this way -

for (let i = 0; i < allRows.length; i++) {
    console.log(allRows[i]);
}

But I don't think it will be a good way to do it. What is the best way to loop through the allRows array and convert as rowsPaginated array?

Shah Alom
  • 1,031
  • 1
  • 14
  • 26

2 Answers2

2

Use array's slice() with the size you want to cut from the array. Try the following:

const allRows = [
        {id: 1, name: 'Name 1'},
        {id: 2, name: 'Name 1'},
        {id: 3, name: 'Name 1'},
        {id: 4, name: 'Name 1'},
        {id: 5, name: 'Name 1'},
        {id: 6, name: 'Name 1'},
        {id: 7, name: 'Name 1'},
        {id: 8, name: 'Name 1'},
        {id: 9, name: 'Name 1'},
        {id: 10, name: 'Name 1'},
        {id: 11, name: 'Name 1'},
        {id: 12, name: 'Name 1'},
        {id: 13, name: 'Name 1'},
        {id: 14, name: 'Name 1'},
        {id: 15, name: 'Name 1'},
        {id: 16, name: 'Name 1'},
        {id: 17, name: 'Name 1'},
        {id: 18, name: 'Name 1'},
        {id: 19, name: 'Name 1'},
        {id: 20, name: 'Name 1'},
        {id: 21, name: 'Name 1'},
        {id: 22, name: 'Name 1'},
        {id: 23, name: 'Name 1'},
        {id: 24, name: 'Name 1'},
        {id: 25, name: 'Name 1'},
        {id: 26, name: 'Name 1'},
        {id: 27, name: 'Name 1'},
        {id: 28, name: 'Name 1'},
        {id: 29, name: 'Name 1'},
        {id: 30, name: 'Name 1'},
    ];

let rowsPaginated = [];
var i, j, size = 10; 
for (i = 0, j = allRows.length; i < j; i += size) {
    rowsPaginated.push(allRows.slice(i, i+size));
}
console.log(rowsPaginated);
Mamun
  • 66,969
  • 9
  • 47
  • 59
0

Try following code, I corrected your array was few mistakes:

const allRows = [
    {id: 1, name: "Name1"},
    {id: 2, name: "Name1"},
    {id: 3, name: "Name1"},
    {id: 4, name: "Name1"},
    {id: 5, name: "Name1"},
    {id: 6, name: "Name1"},
    {id: 7, name: "Name1"},
    {id: 8, name: "Name1"},
    {id: 9, name: "Name1"},
    {id: 10, name: "Name1"},
    {id: 11, name: "Name1"},
    {id: 12, name: "Name1"},
    {id: 13, name: "Name1"},
    {id: 14, name: "Name1"},
    {id: 15, name: "Name1"},
    {id: 16, name: "Name1"},
    {id: 17, name: "Name1"},
    {id: 18, name: "Name1"},
    {id: 19, name: "Name1"},
    {id: 20, name: "Name1"},
    {id: 21, name: "Name1"},
    {id: 22, name: "Name1"},
    {id: 23, name: "Name1"},
    {id: 24, name: "Name1"},
    {id: 25, name: "Name1"},
    {id: 26, name: "Name1"},
    {id: 27, name: "Name1"},
    {id: 28, name: "Name1"},
    {id: 29, name: "Name1"},
    {id: 30, name: "Name1"}
];


let rowsPaginated = [];
let j = 0;
for (let i = 0, j = allRows.length; i < j; i += 10) {
    rowsPaginated.push(allRows.slice(i, i+10));
}

console.log(rowsPaginated);
Hanif
  • 3,739
  • 1
  • 12
  • 18