假设我有一个JSON对象数组,如下所示:
{
title: 'foo',
alias: 'bam',
innerArr: [{
name:'foo',
id:'123',
options: [{id:3,title:'boo',values:[{id:5,name:'Boo'}] }]
}]
}
有没有任何库或简写方法不涉及编写嵌套的for循环,这些循环将迭代这些对象的集合并创建一个新数组,但只包含我想要投影/选择的属性。所以,假设我想要这个数组的副本,但不希望属性title
和嵌套的options[{}]
数组位于目标数组中。因此,这个新数组将具有所有相同的数据,但数组的每个成员现在都没有这两个对象。我可以过载的东西,比如var newarr = method({}, sourceArray, {title, options });
只需创建一个克隆对象(或者您可以处理初始对象)并删除您想要的内容,例如:
var newObj = JSON.parse(JSON.stringify(o));
delete newObj.title;
newObj.innerArr.forEach(function(_o, i){delete _o.options});
console.log(newObj);
若必须将特定的嵌套对象处理为Date
,请使用jQueryextend来克隆对象。
var newObj = $.extend({}, oldObject);
假设我有一个JSON对象数组
对于对象数组:
var newArr = JSON.parse(JSON.stringify(arr));
newArr.forEach(function (_o, i) {
delete _o.title;
_o.innerArr.forEach(function (__o, i) {
delete __o.options
});
});
console.log(newArr);
-jsFiddle-
EDIT:现在我想像prototypejs这样的库会有一些方法,但我不知道这个库。