从复杂对象中提取选定数组和属性的JS方法/lib



假设我有一个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这样的库会有一些方法,但我不知道这个库。

相关内容

最新更新