Ich verwende Javascript, um das Hintergrundbild eines Elements aus einer Klasse zu setzen. Der Code funktioniert größtenteils, aber ich erhalte eine undefinierte Variable, wenn ich den Code ausführe. Ich verwende Math.Random(), um die Zahlen für die Variablen zu erhalten. Das Problem Punkt in meinem Code (oder zumindest ich denke, es ist):JavaScript: Warum bekomme ich einen undefinierten Wert bei der Verwendung von Zufallszahlen aus einem Array?
var RandomContentDiv = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
var cd = RandomContentDiv[Math.round(Math.random()*RandomContentDiv.length-1)];
console.log(cd);
ich console.log(cd);
setzen, um zu sehen, welche Zahlen ausgegeben werden. Ich bekomme Ergebnisse, aber die Ergebnisse sind nicht hilfreich bei der Lösung des Problems. Ich werde den Code 2 Mal testen, um Ihnen zu zeigen, was ich normalerweise bekommen würde.
Test 1:
Number: 5
Number: 13
Number: 10
Number: 1
Number: 10
Number: 6
Number: 10
Number: 3
Number: 2
Number: 15
Number: 2
Number: 3
Number: 8
Number: 15
Number: 12
Number: 7
Number: 9
Number: 2
Number: 0
Number: 8
Number: 10
Number: 3
Number: 14
Number: 13
Number: 9
Number: 1
Number: 15
Number: 13
Number: 3
Number: 2
Number: 4
Number: 14
Number: 11
Number: 0
Number: 15
Number: 7
Number: 6
Number: 1
Number: 4
Number: 7
Number: 8
Number: 6
Number: 7
Number: 4
Number: 10
Number: 0
Number: 12
Number: 11
Number: 2
Number: 7
Number: 2
Number: 11
Number: 13
Number: 6
Number: 0
Number: 5
Number: 1
Number: 2
Number: 7
Number: 8
Number: 2
Number: 13
Number: 4
Number: 3
Number: 7
Number: 15
Number: 5
Number: 1
Number: 0
Number: 2
Number: 11
Number: 8
Number: 10
Number: 12
Number: 11
Number: 1
Number: 12
Number: 11
Number: 12
Number: 0
Number: 6
Number: 8
Number: 1
Number: 11
Number: 1
Number: 12
Number: undefined
Test 2:
Number: 13
Number: 2
Number: 9
Number: 0
Number: 2
Number: 0
Number: 11
Number: 3
Number: 5
Number: 3
Number: 11
Number: 3
Number: 14
Number: 15
Number: 9
Number: 8
Number: 11
Number: 12
Number: 10
Number: 3
Number: 9
Number: 0
Number: undefined
denke ich, das Problem aus dieser Aussage kommt: RandomContentDiv[Math.round(Math.random()*RandomContentDiv.length-1)];
, aber ich weiß nicht, wie es zu beheben weil ich nicht tief genug in Math
für JavaScript getaucht habe. Alles, was ich weiß, ist, dass jemand etwas über Math.Round
gesagt hat, was Ihnen eine ungenaue Zahl gibt, wenn Sie gerundet sind (d. H. 1,5 könnte auf 1 runden), aber ich denke nicht, dass es sich darauf bezieht. Kann mir jemand sagen, ob es die Aussage ist, die das Problem oder etwas anderes verursacht?
Fragen hier sollten nicht "ALL" Ihren Code enthalten. Sie sollten Ihren Code auf das kürzeste Beispiel reduzieren, das Ihr Problem reproduziert. Das heißt, Math.random() * length - 1 ist falsch. Ihre Reihenfolge der Operationen ist falsch, weil '*' Vorrang vor '-' hat. Korrigiere es, indem du Klammern hinzufügst, so dass das '-' vor dem' * 'steht. – meagar
@meagar es ist "Hier ist alles von meinem Javascript-Code", und ich werde versuchen, Ihre Lösung, –
Ich weiß, und ich sage Ihnen, dass einschließlich ** all ** Ihre Javascript-Code macht diese Frage off Topic. Ihr Problem könnte in einer einzigen dreizeiligen Schleife reproduziert werden, und diese Schleife sollte enthalten sein. Nichts mehr. – meagar