javascript - 在代码中避免使用 if else

标签 javascript jquery

function get_map_zoom_level(distance) {
    var zoom = 1;
    if (distance == 0)
        zoom = 11;
    else if (distance == 1)
        zoom = 15;
    else if (distance > 880 && distance <= 1760)
        zoom = 14;
    else if (distance > 1760 && distance <= 3520)
        zoom = 13;
    else if (distance > 3520 && distance <= 7040)
        zoom = 12;
    else if (distance > 7040 && distance <= 14080)
        zoom = 11;
    else if (distance > 14080 && distance <= 28160)
        zoom = 10;
    else if (distance > 28160 && distance <= 56320)
        zoom = 9;
    else if (distance > 56320 && distance <= 112640)
        zoom = 8;
    else if (distance > 112640 && distance <= 225280)
        zoom = 7;
    else if (distance > 225280 && distance <= 450560)
        zoom = 6;
    else if (distance > 450560 && distance <= 889120)
        zoom = 5;
    else if (distance > 889120 && distance <= 1718240)
        zoom = 4;
    else if (distance > 1718240)
        zoom = 3;
    return zoom;
}

我想知道在这段代码中是否有任何方法可以避免很多if else。 基本上我想根据距离找出缩放级别,这段代码运行良好,但我需要一些更好的方法来做到这一点。

最佳答案

这应该有效:

function get_map_zoom_level(distance) {
var zoom = 15;
var temp=880;
if (distance == 0)
    zoom = 11
while (distance > temp){
    temp=temp*2;
    zoom--;
}
return zoom;
}

关于javascript - 在代码中避免使用 if else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37588999/

相关文章:

javascript - JavaScript 中的 PHP 变量

javascript - Knockout JS - 函数不是构造函数

javascript - 如何删除或隐藏 bootstrap 3 slider 的分页?

javascript - 使用 jquery 解析带有节点元素的 xml

javascript - Javascript 中的 Firebase 身份验证设置

java - 我需要我的 <a> 链接标记在下拉菜单中显示为可点击链接,而不仅仅是显示文本值

javascript - 在球体上旋转玩家相机 (javascript/three.js)

javascript - 按钮单击上的隔离范围不起作用

javascript - reveal.js 打印到 pdf 只打印第一张幻灯片?

jquery - 单击时不隐藏文本