如何停止重复ifs

时间:2018-06-29 11:34:25

标签: javascript

const idx = query.idx; 
    let page = 1;

    if (idx > 19){
        page = 2
    };

    if (idx > 39){
        page = 3
    };

    if (idx > 59){
        page = 4
    };

    console.log(page);

这是我的代码,我试图在每隔19、39、59等之后更改页面变量,是否有更好的方式编写此代码,好像我有更多索引,我将需要添加更多ifs

3 个答案:

答案 0 :(得分:5)

除以20(页面大小)并取整结果。像这样:

const idx = query.idx; 
const page = Math.ceil((idx + 1) / 20)

console.log(page);

测试组合:

[
  1,
  5,
  15,
  19,
  20,
  21,
  36,
  39,
  40,
  41,
  49,
  59,
  60,
  68,
].forEach(idx => {
  console.log(idx, Math.ceil((idx + 1) / 20))
})

答案 1 :(得分:0)

尝试以下

const findPage = (idx, limit)=> Math.ceil(idx / limit)+1

console.log(findPage(19, 20))
console.log(findPage(39, 20))
console.log(findPage(59, 20))

答案 2 :(得分:0)

这应该是一个解决方案

 const idx = query.idx; 
    let page = Math.floor(idx / 20) + 1;
    console.log(page);

如果只需要使用ifs:

if (idx > 19 && idx < 40){
    page = 2
};

if (idx > 39 && idx < 60){
    page = 3
};

if (idx > 59){
    page = 4
};