保留json对象数组的选定成员

时间:2014-07-16 02:05:56

标签: javascript arrays json

我想保留JSON对象数组的选定成员。我有下面的JSON数组;

[
    {
        XXX: "2",
        YYY: "3",
        ZZZ: "4"
    },
    {
        XXX: "5",
        YYY: "6",
        ZZZ: "7"
    },
    {
        XXX: "1",
        YYY: "2",
        ZZZ: "3"
    }
]

我想保留XXX和ZZZ成员,以便新的json数组看起来像这样;

[
    {
        XXX: "2",       
        ZZZ: "4"
    },
    {
        XXX: "5",       
        ZZZ: "7"
    },
    {
        XXX: "1",       
        ZZZ: "3"
    }
]

执行此操作的一种方法是使用下面的删除方法删除YYY成员。

for(var i = 0; i < jsonArr.length; i++) {
    delete jsonArry[i]['YYY'];
}

但是,我希望保留一个保留的功能,而不是删除成员。像RetainMembers(JsonArr,&#39; XXX&#39;,&#39; ZZZ&#39;)那样返回新的json数组。如何在Javascript中完成?感谢。

2 个答案:

答案 0 :(得分:1)

Array.map() 专门针对此:

var reduced = original.map(function(_item) {
  return {XXX: _item.XXX, ZZZ: _item.ZZZ}; // leave out YYY
});

答案 1 :(得分:1)

我使用原生map函数来解决这些问题。

var actual = data.map(function (obj) {
   var newObj = {};
   newObj['XXX'] = obj['XXX'];
   newObj['ZZZ'] = obj['ZZZ'];
   return newObj;
});

我可以按照你的方式去做,但我不喜欢改变实际的元素。最好返回一个新的对象。