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

Javascript 保留json对象数组的选定成员,javascript,arrays,json,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对象数组的选定成员。我有下面的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'];
}
for(var i=0;i
然而,我更希望有一个保留成员的功能,而不是删除成员。类似于RetainMembers(JsonArr,'XXX,'ZZZ')的东西,返回新的json数组。如何在Javascript中实现这一点?谢谢。

有专门针对这一点的:

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

对于这类问题,我使用本机
map
函数

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

我可以像你那样做,但我不喜欢改变实际的元素。最好返回一个新对象。

只需将其包装在函数中。您可以复制javascript数组,然后运行副本上列出的for循环。@R Dub:谢谢!我认为这是一个很好的开始。正确答案,但我只能标记1个答案为正确答案。很抱歉