-1

每当另一个变量增加 10 时,我想将变量值增加 1。

示例:一个页面应该有 10 行,如果超过 10,则页码将增加 1。

var pagenumber = 1;//default
var rows = 10;//dynamic value

行数为 20 时,页码应为 2。
行数为 21 时,页数应为 3。
行数为 15 时,页码应为 2。
行数为 35 时,页码应为 4。

我希望我的解释不会令人困惑。(行值由函数设置,因此行变量值是动态的)

那么我该如何实现呢?

4

7 回答 7

3

只需动态计算页码:

function get_page_number(elements, elementsPerPage) {
    return  Math.ceil(elements / elementsPerPage);
}

var pagenumber = get_page_number(rows, 10);
于 2013-06-11T07:42:21.447 回答
1
// counters
var a = 0;
var b = 0;

// demo for the first 5 pages
while (b < 5) {
  a++;

  // increment b only when a is a multiple of 10
  if (a % 10 === 0) {
    b++;
  }

  console.log(a, b);
}

输出

1 0
2 0
3 0
4 0
5 0
6 0
7 0
8 0
9 0
10 1
11 1
12 1
13 1
14 1
15 1
16 1
17 1
18 1
19 1
20 2
21 2
22 2
23 2
24 2
25 2
26 2
27 2
28 2
29 2
30 3
31 3
32 3
33 3
34 3
35 3
36 3
37 3
38 3
39 3
40 4
41 4
42 4
43 4
44 4
45 4
46 4
47 4
48 4
49 4
50 5
于 2013-06-11T07:41:28.273 回答
0

如果您需要没有其他修饰符的派生值,请考虑使用如下函数:

function pagenumber() {
    return Math.ceil(rows / 10); // rows needs to be global for this to work. You can also pass it as a parameter.
}
于 2013-06-11T07:42:11.143 回答
0

以此更新页码

页码 = Math.ceil(rows/10)

谢谢,

迪拉吉

于 2013-06-11T07:42:51.650 回答
0

为什么不执行一个测试,将“行”除以 10,然后向上舍入到下一个整数值。

大卫

于 2013-06-11T07:43:18.603 回答
0

使用二传手

var pagenumber = 1;//default
var rows = 10;

function setRows (n) {
 rows = n;
 pagenumber = Math.ceil(n/10)
}

setRows(20);

console.log (pagenumber); //2

或使用Object.definePropertyon的 getter/setterwindow

Object.defineProperty(window,"pagenumber",{
  get: function () {
   return Math.ceil((rows||0)/10)
  }
});


var rows = 19;
console.log(pagenumber); //1
rows = 22
console.log(pagenumber); //2

ETC..

rows为20时,页码为
2。rows为21时,页码为
3。rows为15时,页码为
2。rows为35时,页码为3。 // 4?

我有点糊涂,你要ceil还是floor数值,除以十?

于 2013-06-11T07:43:37.963 回答
0
pagenumber = Math.ceil((rows - 1)  / 10 + 1)
于 2013-06-11T07:44:11.627 回答