Javascript-Konsole drucken nicht funktioniert, wenn die Zuordnung splice array zu sich selbst

Wenn ich dies tun:

var testArray  = ["a","b","c"];
console.log(testArray);
console.log("size:" + testArray.length);

Ich diese ausgedruckt in meiner Konsole:

["a", "b", "c"]
size:3 

Was gut ist. Aber wenn ich jetzt starten Spleißen mit diesem:

var testArray  = ["a","b","c"];
console.log(testArray);
console.log("size:" + testArray.length);
testArray = testArray.splice(0,1);

Dies geschieht, um zu zeigen, in meiner Konsole:

["b", "c", undefined × 1]
size:3 

Also erste Frage ist, warum wird es mess up mein Druck des array, obwohl die splice wurde nach dem Druck? Die Größe wird korrekt angezeigt, aber der "eine" ist Weg und ich bekomme einen undefinierten am Ende.

Also, was ich tun wollte, war, zu entfernen das erste Element im array. Im Grunde eine Verschiebung. Also ich mache Folgendes:

var testArray  = ["a","b","c"];
console.log(testArray);
console.log("size:" + testArray.length);
testArray = testArray.splice(0,1);
console.log(testArray);
console.log("size:" + testArray.length);

Und dies ist, was ausgegeben:

["b", "c", undefined × 1]
size:3
["a"]
size:1 

Nicht nur verringern der Größe von 2, wird es gelöscht alles aber das "eine". Was ist Los?

  • Splice gibt die "gespleißt" - array. In diesem Fall sind Sie Einstellung testArray auf das Ergebnis der splice, die das array ["a"]
  • Ah danke! Ich glaube, ich war mit der angeklebte dann falsch.
  • ja, javascript splice ist ähnlich wie PHP array_shift arbeiten, entfernen Sie eines, und wieder zurück, dass man.
  • Sie konnte etwas tun, wie testArray = testArray.splice(1); Wenn Sie möchten, entfernen Sie einfach das erste Element.
  • Die Konsole Problem ist; stackoverflow.com/questions/4057440/...
  • Interessant an der Konsole ein Problem. Aber danke an alle. Gelöst alle meine Fragen!
  • splice produziert sehr seltsame Ergebnisse, wenn Sie benötigen, um den index.

InformationsquelleAutor Dragonfly | 2012-09-07
Schreibe einen Kommentar