似乎无法删除对象文字中的元素
Can't seem to delete element in object literal
我有一个 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);
调用上面的代码导致对象被删除,但看起来像是在第三个对象之前插入了键。看看 this fiddle。我不希望发生这种情况。
这就是 Fiddle 中发生的事情。但是在我的实时脚本中,它似乎用 null
一词替换了已删除的对象,这破坏了我的脚本。
我也尝试了 .splice()
的许多变体,但那似乎是针对数组,而不是对象文字。
有什么想法吗?
您可以使用 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; }
JSON.fruits.splice(1, 1); // 移除苹果
知识:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/splice
我有一个 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);
调用上面的代码导致对象被删除,但看起来像是在第三个对象之前插入了键。看看 this fiddle。我不希望发生这种情况。
这就是 Fiddle 中发生的事情。但是在我的实时脚本中,它似乎用 null
一词替换了已删除的对象,这破坏了我的脚本。
我也尝试了 .splice()
的许多变体,但那似乎是针对数组,而不是对象文字。
有什么想法吗?
您可以使用 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; }
JSON.fruits.splice(1, 1); // 移除苹果
知识:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/splice