2016-08-04 11 views
0

Mit diesem assoziativen Array, würde Ich mag einen specfic Schlüssel finden:Finding Keys in assoziativen Arrays mit JavaScript

var veggie_prices = new Array(); 
veggie_prices["serves6"] = 20; 
veggie_prices["serves8"] = 25; 
veggie_prices["serves10"] = 35; 

Wenn ich Schleife durch das Array, ich die Werte mit finden:

var x = veggie_prices[i].value; 

aber wie sollte der Schlüssel gefunden werden?

var y = veggie_prices[i].key; 

Antwort

3

direkt Ihre Frage zu beantworten, verwenden Sie eine for..in Schleife

var veggie_prices = new Array(); 
veggie_prices["serves6"] = 20; 
veggie_prices["serves8"] = 25; 
veggie_prices["serves10"] = 35; 
for (var i in veggie_prices) { 
    console.log(i); // output: serves6, etc.. 
} 

jedoch nur klar zu sein, haben Javascript nicht assoziative Arrays. Was Sie haben, ist ein Objekt vom Typ Array, und Sie haben nur einige Eigenschaften, zusätzlich zu den normalen (wenn auch im Moment leer) Index und andere native Array-Eigenschaften/Methoden (zB .length, .pop(), etc ..)

hinzugefügt
+0

also .. warum der Downvote –

+0

Ich verstehe nicht, warum dies abgelehnt wurde. – mrvncaragay

+0

Nur zum Hinzufügen von Kontext - Derzeit verwendet diese Liste Radio Button-Steuerelemente für die Auswahl in der Liste. Um das ausgewählte Optionsfeld mit einer for-Schleife zu finden, habe ich die Methode .checked und .value verwendet, um den Wert zu erhalten. die Verwendung von .key hat den Schlüssel nicht ergeben. Nicht sicher warum. Vielen Dank für Ihre Antwort. – windsurf88

2

Warum verwenden Sie ein Array? Können Sie stattdessen ein Objekt verwenden?

var veggie_prices = {}; 
veggie_prices["serves6"] = 20; 
veggie_prices["serves8"] = 25; 
veggie_prices["serves10"] = 35; 

Object.keys(veggie_prices).forEach((key) => { 
    console.log('Key is: ' + key); 
    console.log('Value is: ' + veggie_prices[key]); 
}); 
+0

Ja wird zu Objekten verschoben. Derzeit verwendet diese Liste Optionsfeldsteuerelemente zur Auswahl in der Liste. Um das ausgewählte Optionsfeld zu finden, habe ich die Methode .checked und den Wert .value verwendet, um den Wert zu erhalten. die Verwendung von .key hat den Schlüssel nicht ergeben. Nicht sicher warum. Vielen Dank für Ihre Antwort. – windsurf88

+0

Froh, dass es geholfen hat! Bitte akzeptieren Sie die Antwort, wenn dies der Fall ist. – sma

Verwandte Themen