删除的json属性变为null

时间:2014-11-28 07:55:04

标签: javascript json

我有一个存储表的列的json。我想删除名为'Foo'的列。这段代码从我的json中删除了Column,但它没有完全删除它,而是在我的Columns数组中留下了一个空值。

如何完成删除?

var json = { 'Columns': [] };

json.Columns.push({ 'Name': 'Foo' });
json.Columns.push({ 'Name': 'Bar' });

$.each(json.Columns, function (index, col) {
    if (col.Name == 'Foo') {
         delete json.Columns[index];
    }
});

结果:{"Columns":[null,{"Name":"Bar"}]}

2 个答案:

答案 0 :(得分:3)

    if (col.Name == 'Foo') {
       json.Columns.splice(index,1);
    }

将正确删除对象

答案 1 :(得分:2)

只是过滤数据,或者你可以分割数组,但我认为这是一个过度杀伤,所以去吧 Array.filter

json.Columns = json.Columns.filter(function(col){
   return col.Name !== 'Foo';
});