访问对象ID的方法更短?

时间:2016-04-05 12:32:08

标签: javascript arrays indexof

我有一个像这样的对象数组:

public class MyJournalEvents extends Fragment {

public void AddNewDisp(String name) {
    dataAdapterDisp.add(name);
    dataAdapterDisp.sort(null);
    dataAdapterDisp.notifyDataSetChanged();
    spComboDisp.setSelection(dataAdapterDisp.getPosition(name));
    saveConection(xxx, "xxx", "xxx", "xxx",
            "xxx", "xxx");
   }
}

我现在想要访问id,我这样做:

var locations = [
[{id: 1, lat: 51.52376322544537, lng: 5.13785702262885, content: 'Title A'}],
[{id: 2, lat: 51.52358632767757, lng: 5.137921395645208, content: 'Title B'}],
[{id: 3, lat: 51.52343946863126, lng: 5.138093057022161, content: 'Title C'}],
];

我认为这是一个较短的方式:

if (id === 7 || id === 13 || id === 15 || id === 16) {
        marker.setIcon(icon4);
    }

但这不起作用,有人可以帮我解决这个问题,这让我感到很沮丧,因为我不喜欢我使用的代码。

2 个答案:

答案 0 :(得分:2)

您可以将其更改为

if ([7,13,15,16].indexOf(id) > -1 ) {
        marker.setIcon(icon4);
    }

答案 1 :(得分:1)

您可以使用开关代替if

switch(id)
{
case 7:
case 13:
case 15:
case 16:
marker.setIcon(icon4);
break;
}

将来如果添加任何新ID,很容易只添加一个案例。 我希望它会有用。