这几行代码是在将一维数组转换为二维表格显示时非常经典的处理方式。
让我详细解释:
代码含义
for(var i=0;i<intArray.length;i++) {
j = parseInt(i/10, 0); // 计算行号,每行10个数据
k = i % 10; // 计算列号}具体原理
假设 intArray 是一个包含100个元素的数组,索引从0到99:
1. j = parseInt(i/10, 0) - 计算行号
将当前索引
i除以10,取整数部分parseInt(..., 0)的第二个参数0表示按十进制解析结果:每10个元素为一行
计算示例:
| i (索引) | i/10 | parseInt(i/10,0) (行号j) |
|---|---|---|
| 0-9 | 0-0.9 | 0 |
| 10-19 | 1-1.9 | 1 |
| 20-29 | 2-2.9 | 2 |
| ... | ... | ... |
| 90-99 | 9-9.9 | 9 |
2. k = i % 10 - 计算列号
取索引
i除以10的余数结果:每行中0-9的列位置
计算示例:
| i (索引) | i % 10 (列号k) |
|---|---|
| 0 | 0 |
| 1 | 1 |
| ... | ... |
| 9 | 9 |
| 10 | 0 |
| 11 | 1 |
| ... | ... |
完整的映射关系
// 一维数组索引 → 二维表格位置 索引i → 行j, 列k 0 → (0,0) 1 → (0,1) ... 9 → (0,9) 10 → (1,0) 11 → (1,1) ... 99 → (9,9)
实际应用场景
这种转换常用于:
表格展示:将线性数据按网格排列
分页显示:每页固定数量的数据
矩阵运算:处理二维数据
图像处理:像素的坐标计算
可视化示例
假设我们有一个长度为20的数组,要显示在2行10列的表格中:
数组索引: 0 1 2 3 4 5 6 7 8 9 | 10 11 12 13 14 15 16 17 18 19 表格位置: 第0行: 索引0-9 → (0,0)到(0,9) 第1行: 索引10-19 → (1,0)到(1,9)
这种转换非常高效,不需要创建二维数组,直接通过数学计算就能定位每个元素在表格中的位置。