【问题标题】:Create a new javascript object with only selected attributes from another existing object创建一个新的 javascript 对象,该对象仅具有来自另一个现有对象的选定属性
【发布时间】:2014-09-06 19:59:09
【问题描述】:

我有一个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"
        }
    ]
};

【问题讨论】:

  • 解码、删除、再次编码。对 JSON 进行字符串操作看起来并不明智。
  • 每当你有大量的 JavaScript 代码,并且你想测试你是否有正确的语法...JSON 格式你可以使用 www.jsonlint.com。它是一个不错的工具...如果您以前没有看过它,请查看它...

标签: javascript jquery javascript-objects


【解决方案1】:

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
});

【讨论】:

    猜你喜欢
    • 2018-07-16
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 2018-10-28
    • 2010-10-05
    • 1970-01-01
    • 2016-07-13
    相关资源
    最近更新 更多