【问题标题】:delete values from an array in an object using JavaScript?使用 JavaScript 从对象中的数组中删除值?
【发布时间】:2017-07-31 21:10:47
【问题描述】:

我的代码有什么问题?为什么“deleteMessage(index)”函数没有删除任何消息??

var facebookProfile = {
  messages: ["hi", "bye", "test"],
  deleteMessage: function deleteMessage(index) {
     facebookProfile.messages.splice(index);
  },
};

【问题讨论】:

  • 没有?您的方法应该删除从index 开始的所有消息。你是怎么调用这个方法的?
  • 你怎么称呼这段代码?
  • Splice 不会修改源数组。它返回一个新数组。查看文档
  • @Amy 哦,确实如此。你是说切片吗?因为 OP 有拼接,它确实改变了数组。
  • @Amy wrongsplice() 方法通过删除现有元素和/或添加新元素来更改数组的内容。

标签: javascript arrays splice


【解决方案1】:

您需要指定要拼接多少个项目(我猜假设名称是单数)否则它将删除所有消息,直到开始索引。

var facebookProfile = {
  messages: ["hi", "bye", "test"],
  deleteMessage: function deleteMessage(index) {
     facebookProfile.messages.splice(index, 1);
  },
}

facebookProfile.deleteMessage(1)
console.log(facebookProfile.messages)

facebookProfile.deleteMessage(1)
console.log(facebookProfile.messages)

【讨论】:

  • 看不出有什么问题……好吧,一件事。从语义上讲,使用this.messages.splice(...) 可能更好。但这仍然有效。
猜你喜欢
  • 2012-04-18
  • 1970-01-01
  • 2016-05-19
  • 1970-01-01
  • 2017-12-05
  • 1970-01-01
  • 2013-10-30
  • 1970-01-01
相关资源
最近更新 更多