2011-01-10 106 views
1

有一個對象數組,我想從中刪除第一個元素並閱讀它的一些屬性。但我不能。下面是代碼:JavaScript拼接問題

$.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); 
} 

我得到:

3 
a1 
2 
undefined 

爲什麼我總是得到 「未定義」? splice方法應該刪除已定義的元素並將其返回。

回答

6

您可以使用shift來完成此操作 - 它將刪除並返回數組中的第一個元素。

您的問題是拼接返回一個數組所以你的代碼必須是:

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

謝謝!我不知道這一點,它的工作原理。但爲什麼我的代碼不? – Hunter 2011-01-10 18:30:46

+0

@Hunter我更新了我的答案,以解釋爲什麼你的代碼不起作用 – Hemlock 2011-01-10 18:31:15

2

splice返回刪除元素的數組。

這應該工作

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