Ich bin ziemlich fließend in C#, aber ich kämpfe auf einem sehr grundlegenden (scheint) Konzept hier in der Javascript-Teil meines Tickets. Dieses Stück Code:Kann Zählvariable in Embedded Array Lookup nicht verwenden
addPaymentsToBreakdown = function() {
for (var count = 0; count < checkedPayments.length; count++) {
(function (count) {
console.log(checkedPayments[0][count].value);
})(count);
}
}
Ist ein kleinerer Teil einer größeren Funktion, die ich geschrieben habe. Das Array 'checkedPayments' wird an anderer Stelle verwendet und ordnungsgemäß instanziiert.
Das Konzept, das ich nicht verstehe, ist, warum ich nicht einfach die Zählvariable in meiner Funktion verwenden kann, um über die zweite Stufe von 'Zähl'-Indizes im Array zu iterieren. Wenn ich manuell eine Zahl eingeben würde, könnte ich einen der Indizes gut nachschlagen. Ich kann auch nur console.log() jedes Element im Array, aber aus irgendeinem Grund die Kombination der Verwendung dieser Zähler-Variable mit dem eingebetteten Array-Index Dinge vermasseln. Der Fehler, dass Ich sehe nach ist Uncaught TypeError: Cannot read property 'value' of undefined.
Bitte helfen Sie mir mit einer Lösung, und eine einfache Erklärung, warum die Dinge nicht funktionieren. Danke
Ist 'checkedPayments [0]' ein Array mit der gleichen Länge wie 'checkedPayments.length'? – ray
Sie können 'let' anstelle von' var' verwenden. Aber mit 'var' magst du es mögen' (function (i) {return console.log (checkedPayments [0] [i] .value);}) (count) 'Benutze' count' nicht als inneres Funktionsargument. – Redu
Ihr Code funktioniert unmodifiziert in [dieser Geige] (https://jsfiddle.net/hvqcLoff/1/), obwohl die Struktur von checkedPayments mich als ungerade trifft. – ray