【问题标题】:JavaScript splice problemJavaScript 拼接问题
【发布时间】:2011-01-11 02:29:28
【问题描述】:

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

【问题讨论】:

    标签: javascript splice


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢!我不知道这一点,它的工作原理。但是为什么我的代码没有呢?
    • @Hunter 我更新了我的答案来解释为什么你的代码不起作用
    【解决方案2】:

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

    这应该可以工作

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-24
      • 1970-01-01
      • 2013-06-12
      • 2015-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多