Ich habe eine Funktion, die ein Objekt von Werten erzeugt, aber im immer in meinem Konsolenprotokoll:Objektwerte nicht definiert und NaN
x: Array[4]
0: undefined
1: NaN
2: undefined
3: NaN
length: 4
y: Array[4]
0: undefined
1: NaN
2: undefined
3: NaN
length: 4
Die Funktion auf einem Objekt aus einer PHP-Datei erstellt Schleifen, die waren json codierte :
var sdata = {"4":{"7":["1","7","2","2"]},"3":{"3":["2","8","1","1"]}};
Meine Funktion ist:
function populate_collisions(){
gcollision = {
x: [],
y: []
};
for(var key in sdata){
gcollision.x.push(sdata[key][0]);
gcollision.x.push(sdata[key][0] + (sdata[key][2]-1));
gcollision.y.push(sdata[key][1]);
gcollision.y.push(sdata[key][1] + (sdata[key][3]-1));
}
console.log(gcollision);
}
ich bin neugierig zu wissen, warum im undefined bekommen und NaN? Und wie löse ich das Problem?
Hmm ok es funktionierte aber die Addition der Werte zusammen wie Strings eher als eine mathematische Berechnung =/ – Sir
dann [Dieser Beitrag] (http://stackoverflow.com/a/1133814/575527) könnte helfen Sie oder * wenn möglich * entfernen Sie die Anführungszeichen, die Ihre Werte im Array umgeben. das wird sie zu Zahlen machen. – Joseph
Ich kann die Anführungszeichen, die sie in PHP gemacht werden, nicht entfernen. Ich denke, dass sie standardmäßig auf json_encode string ist. Ich werde einen Pass int versuchen. – Sir