2017-08-20 4 views
-1

Kann mir jemand sagen, warum das nicht einen Wert aus dem Array greifen kann?Kann keinen Wert von Array erhalten

var state_tax= new Array(); 
state_tax["Alabama"]=0.05; 
state_tax["Alaska"]=0; 
state_tax["Arizona"]=0.08; 
state_tax["Arkansas"]=0; 
state_tax["Maryland"]=0.06; 

var v_tax=0; 

var lv_bts = 'Maryland'; 

var v_tax = state_tax[lv_bts.value]; 

Dank

+0

'lv_bts' ist eine Zeichenkette, sie hat keinen Wert propery. – felixmosh

Antwort

0

Sie müssen nur den Wert der Zeichenfolge als Schlüssel, ohne Eigentum.

var v_tax = state_tax[lv_bts]; 
//     ^^^^^^ 

Sie können anstelle eines Arrays ein Objekt verwenden, weil Sie es wie ein Objekt zu verwenden, ohne die Besonderheiten eines Arrays zu verwenden.

var state_tax = {}; 
 
state_tax["Alabama"] = 0.05; 
 
state_tax["Alaska"] = 0; 
 
state_tax["Arizona"] = 0.08; 
 
state_tax["Arkansas"] = 0; 
 
state_tax["Maryland"] = 0.06; 
 

 
var lv_bts = 'Maryland'; 
 
var v_tax = state_tax[lv_bts] || 0; // take a default value if property does not exists 
 

 
console.log(v_tax);

+0

Danke das hat super funktioniert! Kannst du mir noch eine Sache helfen? Ich muss das bekommen "var lv_bts =" "mit etwas wie Aber es funktioniert nicht innerhalb einer Funktion. Versucht, BILLTOSTATE zu globalen hinzufügen und greifen in func, aber immer noch keinen Erfolg – LeeAlexander

+0

Entschuldigung, ich kann nicht mit PHP helfen. –

+0

Ok danke trotzdem – LeeAlexander

1

Sie es nicht greifen kann, da keine gibt es value Eigenschaft in Ihrem lv_bts.
Auch, warum nicht etwas verwenden, das Sie leicht debuggen können? Die Verwendung von Array (oder tatsächlich ist es Objekt Instanz) mit benannten Schlüsseln ist ungerade. Wenn Sie sagen: state_tax.length ein 0 Ergebnis ist nur irreführend und fehlerhaft.

ein Objekt verwenden, wörtliche statt:

var state_tax = { 
 
"Alabama" : 0.05, 
 
"Alaska" : 0, 
 
"Arizona" : 0.08, 
 
"Arkansas" : 0, 
 
"Maryland" : 0.06 
 
} 
 

 
console.log(state_tax.Maryland); 
 
console.log(state_tax["Maryland"]);

Wenn Sie wirklich wollen eine value Eigenschaft haben, als hier geht:

var state_tax = { 
 
"Alabama" : {value: 0.05}, 
 
"Alaska" : {value: 0}, 
 
"Arizona" : {value: 0.08}, 
 
"Arkansas" : {value: 0}, 
 
"Maryland" : {value: 0.06} 
 
} 
 

 
console.log(state_tax.Maryland.value); 
 
console.log(state_tax["Maryland"].value);

Verwandte Themen