【问题标题】:splicing specific value in array of array在数组数组中拼接特定值
【发布时间】:2012-03-25 08:47:39
【问题描述】:

我有一个关联数组存储在另一个关联数组中。我知道如何在常规数组中拼接特定值:

arr.splice(arr.indexOf('specific'), 1);

我想知道如何拼接这样的数组:

arr['hello']['world']

编辑这会缩短hello['world']['continent']

var hello = {};
            hello['world'] = {};
            hello['world']['continent'] = "country";
            delete hello['world']['continent'];
            alert(hello['world']['continent'])

【问题讨论】:

  • JavaScript 没有“关联”数组。
  • helloworld 是什么? arr 是什么样的?你希望它看起来像什么?
  • arr['hello']['world']也可以通过arr.hello.world访问

标签: javascript arrays


【解决方案1】:

你应该可以只使用 delete 关键字。

delete arr["hello"]["world"]

How do I remove objects from a javascript associative array?

编辑,基于其他 cmets:

为了可读性,你也可以这样做:

delete arr.hello.world

由于我们实际上只是在谈论对象,而不是传统的数组,因此没有数组长度。但是,您可以从对象中删除键。

【讨论】:

  • 这会缩短数组吗?
  • 它会一起移除世界对象。所以,它会缩短 arr["hello"]
  • 不会让它变得未定义...我很确定
  • 在列出对象的键的上下文中,我更多地考虑了长度。在那种情况下,我相信它会缩短键列表。
  • @Rocket 我在这些引号中加上“缩短”的原因正是你的建议......“缩短”没有意义(正如你所说)。这就是我试图沟通的内容。 :)
【解决方案2】:

JavaScript 没有关联数组。

使用对象:

var x = {
  a : 1,
  b : 2,
  c : {
     a : []
  }
}

delete x.c.a;

【讨论】:

    【解决方案3】:

    javascript 中的“关联数组”实际上并不是一个数组,它只是一个设置了属性的对象。 Foo["Bar"]Foo.Bar 相同。所以你不能在这里谈论切片或长度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-14
      • 2018-08-26
      • 1970-01-01
      • 2014-04-21
      • 2013-02-13
      • 2020-07-31
      • 2018-09-09
      • 2015-04-13
      相关资源
      最近更新 更多