使用另一个现有对象中的选定属性创建一个新的javascript对象

时间:2014-07-16 10:17:19

标签: javascript jquery javascript-objects

我有一个javascript object,我想创建一个只有一些属性的新文件。

如何从下面的对象创建仅包含属性ac的新对象?

json = {
  "test": [
        {
            "a": "val_a1",
            "b": "val_b1",
            "c": "val_c1",
            "d": "val_d1"
        },
        {
            "a": "val_a2",
            "b": "val_b2",
            "c": "val_c2",
            "d": "val_d2"
        },
        {
            "a": "val_a3",
            "b": "val_b3",
            "c": "val_c3",
            "d": "val_d3"
        }
    ]
}

我想要一个包含以下数据的新对象:

smaller_json = {
    "test": [
        {
            "c": "val_a1",
            "a": "val_c1"
        },
        {
            "c": "val_a2",
            "a": "val_c2"
        },
        {
            "c": "val_a3",
            "a": "val_c3"
        }
    ]
};

1 个答案:

答案 0 :(得分:0)

<强> JSFIDDLE DEMO

代码:

var json = {
  "test": [
        {
            "a": "val_a1",
            "b": "val_b1",
            "c": "val_c1",
            "d": "val_d1"
        },
        {
            "a": "val_a2",
            "b": "val_b2",
            "c": "val_c2",
            "d": "val_d2"
        },
        {
            "a": "val_a3",
            "b": "val_b3",
            "c": "val_c3",
            "d": "val_d3"
        }
    ]
};

var new_json = {test:{}};
$(document).ready(function(){
    $.each(json.test, function(key, value){
        //console.log("key = "+key);
        //console.log("value = ");
        //console.log(value);
        var new_obj = {};
        new_obj.a = value.a;
        new_obj.c = value.c;
        new_json.test[key] = new_obj;
    });

    console.log("new_json = ");
    console.log(new_json);//here new_json will only contain attributes "a" and "c" only
});