删除 jsonObject 替换为未定义



为什么如果我删除 json 的元素 0,它会被替换为"undefined",而且我没有一个带有 1 个元素的 jsonArray。

var json = [
            {"name": "test", "position":1},
            {"name": "test2", "position":2}]
            
delete json[0]
console.log(json)
            
      

我想要这样的东西:

[
  {
    "name": "test2",
    "position": 2
  }
]

我还没有看到解决这个问题的帖子。

谢谢

您可以使用

splice

splice() 方法通过删除或 替换现有元素和/或添加新元素。

json.splice(0, 1)

json 是一个数组而不是一个对象。 delete不适用于阵列。使用 shift() 删除数组的第一个元素。指

json.splice(0, 1)
var json = [{
    "name": "test",
    "position": 1
  },
  {
    "name": "test2",
    "position": 2
  }
]
json.shift()
console.log(json)

您还可以使用拼接从数组中删除对象

var json = [{
    "name": "test",
    "position": 1
  },
  {
    "name": "test2",
    "position": 2
  }
]
json.splice(0, 1)
console.log(json)

使用 splice

json.splice(0, 1);  // 1 item at position 0

我写这个答案的主要原因是评论这与JSON无关 - 你有一个Javascript对象,而不是JSON字符串。

删除 json[0] 后,你只需要像这样过滤值

json.filter(x=>x)

https://codepen.io/pen/?editors=1111

最新更新