javascript - 循环 javascript 数组的好方法是什么?

标签 javascript arrays

考虑以下 JavaScript 数组:

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 = [
    [
        {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}
    ]
];

我正在考虑以这种方式转换 -

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

但我认为这不是一个好方法。 循环遍历 allRows 数组并将其转换为 rowsPaginated 数组的最佳方法是什么?

最佳答案

使用数组的 slice() 以及要从数组中剪切的大小。请尝试以下操作:

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

关于javascript - 循环 javascript 数组的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48044098/

相关文章:

c - 不兼容的指针类型

c++ - 如何在 C++ 中重新定位一个数组中的元素

java - BigInteger 到字节数组,bigint 的大小位于数组的开头

javascript - 如何在 for 中构建 JavaScript 二维数组

javascript - 无法访问类成员

java - 为什么我的多维数组初始化不起作用?

PHP 函数数组默认值?

javascript - 用 Jquery 替换 &lt;script&gt; 标签内 HTML 中的值

javascript - 当我单击 X 时,为什么所有项目都会从 Backbone.js View 中删除

javascript - Angular 将参数传递给函数