1

A 有一个对象数组,我想从中删除第一个元素并读取它的一些属性。但我不能。这是代码:

$.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 方法应该删除定义的元素并返回它/它们。

4

2 回答 2

6

您可以使用shift它来完成此操作 - 它删除并返回数组中的第一个元素。

您的问题是 splice 返回一个数组,因此您的代码必须是:

alert("removed element's 'a': " + element[0].a);
于 2011-01-10T18:27:48.373 回答
2

splice返回已删除元素的数组。

这应该工作

alert("removed element's 'a': " + element[0].a);
于 2011-01-10T18:29:28.870 回答