如何根据连续的值序列获取列的索引

How to get index of column based on continuous sequence of values

我有这个数字序列

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

每个数字代表页面上的一个组件。每 3 个数字组成一页。组件索引在每个页面上重新启动。所以基本上是基于列的索引。

你可以把它想象成

0   1   2
3   4   5
6   7   8
9   10  11
12  13  14
15  16  17
18  19  20
21  22  23
24  25  26
27  28  29

其中每一行是一个页面,每一列是一个组件。

我只需要根据这些数字来识别 page/row 和 component/column 数字所在的位置。页面和组件计数从 0 开始。

我已经设法使用 Math.floor(number / 3) 识别 page/row 的索引。

如何识别组件?

例如,20 将是第 6 页上的组件 2,10 将是第 3 页上的组件 1,27 将是第 9 页上的组件 0。

使用取模运算符:

var component = number % 3;

您将要使用 % 获取组件,并使用除法获取页面,如下所示:

/*
0   1   2
3   4   5
6   7   8
9   10  11
12  13  14
15  16  17
18  19  20
21  22  23
24  25  26
27  28  29
*/

function componentInfo(offset) {
  return {
    page: Math.floor(offset / 3),
    component: offset % 3
  }
}

console.log(componentInfo(6))
console.log(componentInfo(10))
console.log(componentInfo(22))