2016-04-05 4 views
0

У меня есть массив объектов, как это:Более короткий способ доступа к объекту 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); 
    } 

Я подумал, что это более короткий путь:

if (id.toString().indexOf(['7','13','15','16'] > -1)) { 
     } 

Но это не работает, может кто-нибудь помочь мне в этом, это расстраивает меня, потому что мне не нравится этот код, который я использую.

+0

Почему вы завертываете его в цитату '' '? – Rayon

+0

вы можете использовать indexOf в массиве. Это зависит от версии вашего навигатора, ищите его в mdn –

ответ

2

Вы можете изменить его на

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

вы можете использовать переключатель вместо если

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

в будущем, если какой-либо новый идентификатор добавляется легко добавить только один случай. Надеюсь, это будет полезно.

Смежные вопросы