我有一个JSON对象文字,我试图删除一个元素(让我们说苹果)。我尝试了很多东西,但我似乎无法让它发挥作用。
var JSON = {
"fruits": [{
"name": "oranges",
"quantity": "3"
},{
"name": "apples",
"quantity": "2"
},{
"name": "bananas",
"quantity": "3"
}
]};
console.log(JSON);
delete JSON.fruits[1];
console.log(JSON);
调用上面的代码会导致对象被删除,但看起来就像在第3个对象之前插入了键。看看this fiddle。我不希望这种情况发生。
小提琴中发生了什么。但是,然后在我的实时脚本中,它看起来像用null
替换了已删除的对象,这会破坏我的脚本。
我还尝试了.splice()
的许多变体,但这似乎是数组,而不是对象文字。
有什么想法吗?
答案 0 :(得分:2)
您可以将Array#splice
用于对象内部的数组。
delete
删除对象,但是你得到一个未定义的数组元素。
var object = { fruits: [{ name: "oranges", quantity: "3" }, { name: "apples", quantity: "2" }, { name: "bananas", quantity: "3" }] };
object.fruits.splice(1, 1);
console.log(object);
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 1 :(得分:0)
JSON.fruits.splice(1,1); //删除苹果
知识:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/splice