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

时间:2013-06-11 07:38:51

标签: javascript

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

实施例: 一个页面应该有10行,如果超过10,页面编号将增加1。

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

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

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

那我怎么能实现这个目标呢?

7 个答案:

答案 0 :(得分:3)

动态计算页码:

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

var pagenumber = get_page_number(rows, 10);

答案 1 :(得分: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

答案 2 :(得分: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.
}

答案 3 :(得分:0)

通过此

更新页码

pagenumber = Math.ceil(rows / 10)

谢谢,

DHIRAJ

答案 4 :(得分:0)

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

大卫

答案 5 :(得分:0)

使用Setter

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

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

setRows(20);

console.log (pagenumber); //2

window

上使用Object.defineProperty的getter / setter
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

等。

  

当行数为20时,页码应为2   当行为21时,页码应为3   当行为15时,页码应为2.
  当行为35时,页码应为3. // 4?

我有点困惑,你想要ceilfloor这个值除以10吗?

答案 6 :(得分:0)

pagenumber = Math.ceil((rows - 1)  / 10 + 1)