if语句的替代方案

时间:2015-05-29 05:31:36

标签: jquery

我想知道是否有办法避免使用100个if语句。我的应用程序将根据用户输入的郊区进行操作。它将找到距离郊区最近的5家商店。

由于所有结果都不同,有没有办法列出每个郊区最近的5个商店而没有每个郊区的if语句?只是对于一个州的一部分,如果陈述将是99。

编辑:

我会添加一个快速模拟的代码,因为我还没有与我联系atm

if($("#suburbSearch").val() == "suburb1")
        $("#radSec").html("");
        $("#radSec").append(enterSuburb1 + enterSuburb2 + enterSuburb3 + enterSuburb4 + enterSuburb5);

这是我到目前为止只是为了看它是否会起作用。如果我继续这样做,我需要这样做:

 ListView lv = (ListView)findViewById(R.id.list_view);
    lv.setOnScrollListener(new OnScrollListener() {
        @Override
        public void onScroll(AbsListView view, int firstVisibleItem, 
            int visibleItemCount, int totalItemCount) {
            //Check if the last view is visible
            if (++firstVisibleItem + visibleItemCount > totalItemCount) {
                //load more content
            }
        }
    });

荒谬的金额

1 个答案:

答案 0 :(得分:0)

如果你这样做是静态html,那么你可以相对容易地使用字典。

这样的事情:

var locationLookups = {"suburb1": ["store1", "store2", "store3"],
                       "suburb2": ["store4", "store5", "store6"]};

var target = locationLookups["suburb1"]; // target contains array of store1-3

然后你只需要查看郊区就可以获得所有商店..如果你想要郊区列表,你只需要使用Object.Keys(locationLookups)来获得郊区数组。如果你想要整个商店列表,你需要循环遍历字典并建立一个列表,或者你可以保留一个单独的列表。

使用您的示例:

$("#suburbSearch").focusout(function() {
    if($.inArray($("#suburbSearch").val(), Object.Keys(locationLookups)) != -1)
    {
        $("#radSec").html(locationLookups[$("#suburbSearch").val()].join(''));
    }
    else
        alert("It's Not There");
});

理想情况下,您可能会调用一些基于地理邮政编码搜索返回商店列表的商店列表以及与该位置或类似地点的距离......但如果您想对其进行硬编码,则字典是最佳选择。