【问题标题】:How to get index of column based on continuous sequence of values如何根据连续的值序列获取列的索引
【发布时间】:2019-04-02 19:27:45
【问题描述】:

我有这个数字序列

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

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

我只需要根据这些数字来识别数字所在的页面/行和组件/列。页面和组件计数从 0 开始。

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

如何识别组件?

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

【问题讨论】:

  • 您可能希望使用模数而不是除法。
  • 获取页面和/或组件索引?
  • 取位置并使用%获取模数。即,第 5 位:5 % 3 -> 2.
  • 请根据您的示例提供所需结果的示例。
  • 用所需结果的示例编辑了我的问题@PM77-1

标签: javascript counting


【解决方案1】:

使用模数运算符:

var component = number % 3;

【讨论】:

    【解决方案2】:

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

    /*
    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))

    【讨论】:

    • Math.floor 而不是 Math.ceil 因为我使用的是基于 0 的索引,但除此之外就是这样
    猜你喜欢
    • 2021-11-08
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-19
    • 1970-01-01
    • 2018-06-01
    • 1970-01-01
    相关资源
    最近更新 更多