似乎无法删除对象文字中的元素

时间:2016-10-31 07:17:02

标签: javascript json 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);

调用上面的代码会导致对象被删除,但看起来就像在第3个对象之前插入了键。看看this fiddle。我不希望这种情况发生。

小提琴中发生了什么。但是,然后在我的实时脚本中,它看起来像用null替换了已删除的对象,这会破坏我的脚本。

我还尝试了.splice()的许多变体,但这似乎是数组,而不是对象文字。

有什么想法吗?

2 个答案:

答案 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)