2017-09-19 3 views
1

J'ai une paire valeur/clé assignée comme `` à laquelle je voudrais accéder en faisant correspondre une variable séparée.Mappage de variables à des paires de valeurs clés dans javascript

var dict = []; 

dict.push({ 
    key: "shelter", 
    value: "icon1" 
}); 

dict.push({ 
    key: "legal", 
    value: "icon2" 
}); 


dict.push({ 
    key: "bar", 
    value: "icon3" 
}); 

Par exemple, si j'avais collection ci-dessous fonction, je voudrais faire correspondre symboldict.value puis dict.key être connecté à la console. Donc, dans ce cas, il serait le journal serait "icon1", "icon2", "icon3"

var places = { 
    "type": "FeatureCollection", 
    "features": [{ 
     "type": "Feature", 
     "properties": { 
      "icon": "shelter" 
     }, 
     "geometry": { 
      "type": "Point", 
      "coordinates": [-77.038659, 38.931567] 
     } 
    }, { 
     "type": "Feature", 
     "properties": { 
      "icon": "legal" 
     }, 
     "geometry": { 
      "type": "Point", 
      "coordinates": [-77.003168, 38.894651] 
     } 
    }, { 
     "type": "Feature", 
     "properties": { 
      "icon": "bar" 
     }, 
     "geometry": { 
      "type": "Point", 
      "coordinates": [-77.090372, 38.881189] 
     } 

    }] 
}; 


places.features.forEach(function(feature) { 
    var symbol = feature.properties['icon']; 

console.log(dict.value) 

}); 

Comment peut-on écrire cela en javascript?

+1

'dict' n'est pas un bon nom de choisir un' [] ' – Redu

+1

votre dict est essentiellement une [Carte] (https://developer.mozilla.org/en- US/docs/Web/JavaScript/Référence/Global_Objects/Map). Ensuite, vous pouvez simplement utiliser 'dict.get (symbole)' ou remplacer ce tableau par un objet simple et simplement faire 'dict [symbole]' – T4rk1n

+0

Pourquoi appelez-vous votre clé, 'key' et value,' value'? Pourquoi ne pas les utiliser tels qu'ils sont décrits (par exemple, '{shelter: 'icon', legal: 'icon2', ...}')? – BotNet

Répondre

1

Vous pouvez utiliser un objet comme dictionnaire pour les paires de valeurs de clé souhaitées. Ensuite, prenez la valeur de l'itération comme clé pour le dictionnaire.

var dict = { shelter: "icon1", legal: "icon2", bar: "icon3" }, 
 
    places = { type: "FeatureCollection", features: [{ type: "Feature", properties: { icon: "shelter" }, geometry: { type: "Point", coordinates: [-77.038659, 38.931567] } }, { type: "Feature", properties: { icon: "legal" }, geometry: { type: "Point", coordinates: [-77.003168, 38.894651] } }, { type: "Feature", properties: { icon: "bar" }, geometry: { type: "Point", coordinates: [-77.090372, 38.881189] } }] }; 
 

 
places.features.forEach(function (feature) { 
 
    var symbol = feature.properties.icon; 
 
    console.log(dict[symbol]); 
 
});