2011-01-10 3 views
1

A haben eine Reihe von Objekten und ich möchte das erste Element daraus entfernen und einige seiner Eigenschaften lesen. Aber ich kann nicht. Hier ist der Code:JavaScript Spleiß Problem

$.test = function(){ 
var array = [ 
    {a: "a1", b: "b1"}, 
    {a: "a2", b: "b2"}, 
    {a: "a3", b: "b3"} 
]; 
alert("0. element's 'a': " + array[0].a); 
alert("length: " + array.length); 

var element = array.splice(0, 1); 
alert("length: " + array.length); 
alert("removed element's 'a': " + element.a); 
} 

ich:

3 
a1 
2 
undefined 

Warum bekomme ich immer "undefiniert"? Die Spleißmethode soll die definierten Elemente entfernen und zurückgeben.

Antwort

6

Sie können dazu shift verwenden - es entfernt und gibt das erste Element in einem Array zurück.

Ihr Problem ist, dass Spleiß ein Array zurückgibt, so würde der Code sein müssen:

alert("removed element's 'a': " + element[0].a); 
+0

Dank! Ich wusste nichts davon und es funktioniert. Aber warum mein Code nicht? – Hunter

+0

@Hunter Ich habe meine Antwort aktualisiert, um zu erklären, warum Ihr Code nicht funktioniert – Hemlock

+0

Ich sehe! Vielen Dank! Ich werde es akzeptieren, sobald ich kann. – Hunter

2

splice gibt eine Anordnung der Elemente entfernt.

sollte diese

arbeiten
alert("removed element's 'a': " + element[0].a); 
+0

Danke auch dafür! – Hunter