2017-05-12 15 views
0

私はこれを理解しようとしていますが、何らかの理由で私はできません。 私はJavascriptをかなり新しくしています....Javascriptのループスルーオブジェクト配列

ここは私がしたいことです。

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; 
} 
} 

私のコンボボックスで選択されているものに従って値を返すループを作成することです。

これはPDFモデレートであり、ユーザーはPDF内のコンボボックスを変更でき、フィールドには正しいデータが入力されることにご注意ください。

+1

ありますあなたの質問に配列はありません。それはおそらく混乱の一部です。 –

+0

あなたは説明をお探しですか? – Rajesh

+0

ここに「this」とは何ですか? – brk

答えて

1

私はあなただけでカッコ表記を探していると思う:

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; 
    } 
} 

event.changeEx"companyOne"が含まれている場合、companyList[event.changeEx]companyList.companyOneを参照します。


あなたのプロパティ名とフィールド名が同じなので、あなたもフェッチされるとループを使用してその値を更新するために、キーのリストを維持することができます

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

これはどういう仕組みか理解しようとしています。私が知る限り、私はobjectlistが私の「配列」だと思って、そこからデータを得ることができました。それに基づいて、私はコンボボックスの選択に基づいてデータを選択できるはずです! – Interactive

+0

@Interactive:あなたの 'companyList'は配列ではなく配列以外のオブジェクトです。上記はコンボボックスの選択に基づいて情報を選択します( 'event.changeEx'が何であるかを前提としています)。 –

+0

ああ、私はちょうどあなたの "非コード"の部分を読んだ。それは素晴らしく簡単です。ありがとうございます – Interactive