【问题标题】:Removing items from a javascript array - possibly using JavaScript's delete function? [duplicate]从 javascript 数组中删除项目 - 可能使用 JavaScript 的删除功能? [复制]
【发布时间】:2014-04-28 10:49:54
【问题描述】:

我正在使用 Flot JS 图表。我正在尝试使用 jquery or 纯 javascript 从我的数据数组中完全删除其中一个情节系列。

这是我的数据数组的样子:

[
 {
  "label" : "Citrix PV Ethernet Adapter",
  "data": [[1,0], [2,0.01], [3,0.02], [4,0.01], [5,0.01]]
 },
 {
  "label" : "Virtual Adapter _1",
  "data" : [[1,0], [2,0], [3,0], [4,0], [5,0]]
 }
]

我希望能够完全删除其中一个条目,最好使用“标签”属性值,所以它看起来像这样:

[
 {
  "label" : "Citrix PV Ethernet Adapter",
  "data": [[1,0], [2,0.01], [3,0.02], [4,0.01], [5,0.01]]
 }
]

这可能吗?我知道可以在 Flot 中“切换”系列的可见性,但这不适合这种情况。

这个数组中可能有很多条目,我只是将其保留为两个作为示例。

我已经尝试过使用 javascripts delete 函数,但到目前为止我没有运气。

如何做到这一点?

【问题讨论】:

  • delete 是运算符而不是函数,您需要的是slicesplice
  • @elclanrs 我设法在一个更简单的数组上使用delete 来完成此操作,例如:delete simpleArray["key1"];,但我无法弄清楚如何在上面发布的数组上执行此操作 - 我'将调查slicesplice
  • 你的意思是一个更简单的对象?数组有自己的删除元素的方法developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
  • @elclanrs 是的,我猜那是一个对象。在那种情况下的例子是var simpleArray = {"key1":true},所以我明白为什么它只在这种情况下有效。

标签: javascript jquery flot


【解决方案1】:

假设您知道要删除的元素的索引,则可以使用splice() 将其删除。

所以给定:

var chartDataArray = [
 {
  "label" : "Citrix PV Ethernet Adapter",
  "data": [[1,0], [2,0.01], [3,0.02], [4,0.01], [5,0.01]]
 },
 {
  "label" : "Virtual Adapter _1",
  "data" : [[1,0], [2,0], [3,0], [4,0], [5,0]]
 },
 {
  "label" : "Citrix PV Ethernet Adapter 2",
  "data": [[3,0.02], [4,0.01], [5,0.01]]
 },
 {
  "label" : "Virtual Adapter _3",
  "data" : [[1,0], [2,0], [3,0]]
 }
]

然后以下将删除索引2处的项目:

chartDataArray.splice(2, 1);

【讨论】:

  • 谢谢,我会努力解决这个问题。我认为使用“标签”值没有简单方法可以做到这一点?
  • 看看这个关于如何在数组中查找对象的问题:stackoverflow.com/questions/15997879/…
猜你喜欢
  • 2014-05-01
  • 2015-10-25
  • 1970-01-01
  • 2015-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-03
  • 1970-01-01
相关资源
最近更新 更多