2017-05-12 1 views
0

Ich versuche, dies zu verstehen, aber aus irgendeinem Grund kann ich nicht. Ich bin ziemlich neu für Javascript ....Schleife durch Objekt-Array in Javascript

Hier ist, was ich tun möchte.

var companyList = {}; 
companyList.comanyZero = { 
    fldStreet: "That street 0", 
    fldPostcode: "0000 AA", 
    fldCity: "Amsterdam", 
    fldCountry: "The Netherlands" 
}; 
companyList.companyOne = { 
    fldStreet: "Street name 1", 
    fldPostcode: "1234 BA", 
    fldCity: "Amsterdam", 
    fldCountry: "The Netherlands" 
}; 

if (!event.willCommit){ 

if (event.changeEx === "companyZero"){ 
    this.getField("fldStreet").value = companyList.companyZero.fldStraat; 
    this.getField("fldPostcode").value = companyList.companyZero.fldPostcode; 
    this.getField("fldCity").value = companyList.companyZero.fldCity; 
    this.getField("fldCountry").value = companyList.companyZero.fldCountry; 
} 

if (event.changeEx === "companyOne"){ 
    this.getField("fldStreet").value = companyList.companyOne.fldStreet; 
    this.getField("fldPostcode").value = companyList.companyOne.fldPostcode; 
    this.getField("fldCity").value = companyList.companyOne.fldCity; 
    this.getField("fldCountry").value = companyList.companyOne.fldCountry; 
} 
} 

Die Idee besteht darin, eine Schleife zu erstellen, die die Werte zurückgibt, entsprechend dem, was in meiner Combobox ausgewählt ist.

Bitte beachten Sie, dass dies eine PDF-Moderation ist, so dass Benutzer eine Combobox in einer PDF-Datei ändern können und die Felder mit korrekten Daten gefüllt werden.

+1

Es gibt Keine Arrays in deiner Frage. Das ist wahrscheinlich ein Teil der Verwirrung. –

+0

Suchen Sie eine Erklärung? – Rajesh

+0

Was ist 'das' hier? – brk

Antwort

1

Ich glaube, du bist nur für Klammern Schreibweise suchen:

if (!event.willCommit) { 
    var currentCo = companyList[event.changeEx]; 
    if (currentCo) { 
     this.getField("fldStreet").value = currentCo.fldStraat; 
     this.getField("fldPostcode").value = currentCo.fldPostcode; 
     this.getField("fldCity").value = currentCo.fldCity; 
     this.getField("fldCountry").value = currentCo.fldCountry; 
    } 
} 

Wenn event.changeEx"companyOne" enthält, dann companyList[event.changeEx]companyList.companyOne verweisen wird.


Da Ihr Eigenschaftsnamen und Feldnamen identisch sind, können Sie auch eine Liste der Schlüssel halten geholt werden und ihre Werte aktualisieren mit einer Schleife:

var fieldNames = ["fldStreet", "fldPostcode", "fldCity", "fldCountry"] 
 
if (!event.willCommit) { 
 
    var currentCo = companyList[event.changeEx]; 
 
    if (currentCo) { 
 
    fieldNames.forEach((name) => { 
 
     this.getField("").value = currentCo[name]; 
 
    }) 
 
    } 
 
}

+0

Nun, ich versuche zu verstehen, wie das funktioniert. Soweit ich weiß, dachte ich, Objektliste wäre mein "Array" und ich könnte meine Daten von dort bekommen. Basierend darauf sollte ich in der Lage sein, Daten basierend auf einer Combobox-Auswahl auszuwählen! – Interactive

+0

@Interactive: Ihre 'companyList' ist ein Nicht-Array-Objekt, kein Array. Das obige wählt Informationen basierend auf der Combobox-Auswahl aus (angenommen, dass dies "event.changeEx" ist). –

+0

Oh Scheiße, ich habe gerade deinen "Nicht-Code" -Teil gelesen. Es ist genial einfach. Danke – Interactive

Verwandte Themen