2016-06-29 3 views
0

私はC#に非常に精通していますが、私のチケットのJavaScript部分には非常に基本的なコンセプトがあります。このコードは次のとおりです。組み込み配列の参照変数でカウント変数を使用できない

addPaymentsToBreakdown = function() { 
    for (var count = 0; count < checkedPayments.length; count++) { 
     (function (count) { 
      console.log(checkedPayments[0][count].value); 
     })(count); 
    } 
} 

私が書いたより大きな機能のほんの一部です。配列 'checkedPayments'は他の場所で使用されており、適切にインスタンス化されています。

私が理解していないという考え方は、配列変数のcount番目のインデックスの2番目の層を繰り返し処理するために関数内のcount変数を使用することができない理由です。私が手作業で数字を入力すると、インデックスのどれかを調べることができました。私も配列のすべての要素をconsole.log()することができますが、何らかの理由でそのカウント変数を組み込み配列のインデックスと組み合わせることは物事を乱してしまいます。 の後に表示されるエラーはUncaught TypeError: Cannot read property 'value' of undefined.です。問題が解決しない理由と簡単な説明をしてください。ありがとう

+0

'checkedPayments [0]'は 'checkedPayments.length'と同じ長さの配列ですか? – ray

+0

'var'の代わりに' let'を使うことができます。しかし、 'var'を使うと、内部関数の引数として' count'を使わないでください。(function(i){return console.log(checkedPayments [0] [i] .value);})(count) – Redu

+0

あなたのコードは[this fiddle](https://jsfiddle.net/hvqcLoff/1/)で修正されていませんが、checkedPaymentsの構造は私を奇妙に思います。 – ray

答えて

0

皆さんのご意見ありがとうございます。私は答えを見つけることを終え、私はそれを共有したいと思います。コード:addPaymentsToBreakdown = function() { console.log('checkedPayments:', checkedPayments); for (var count = 0; count < checkedPayments.length; count++) { console.log(checkedPayments[count][0].value); } }

私が必要としていたものを正確にやり遂げました。鍵は[count] [0] .valueを見つけることにあった。私はそれ以上のレベルで1つのレイヤーにアクセスする必要がありました。この配列の出力には、データベースからのIDを表す3つの要素の値が表示されるようになりました。これで私のクエリを完了することができます。あなたの助けをありがとう;)

関連する問題