【问题标题】:How to deep copy an object in javascript as object not as array如何将javascript中的对象深度复制为对象而不是数组
【发布时间】:2013-06-04 01:03:25
【问题描述】:

如何将 javascript 中的对象作为对象而不是数组进行深度复制

var x = {attr1: "value", attr2: "value"};
var y = $.extend(true, [], x);
var z = $.extend(true, [], x);

alert($.type(x)); // object
alert($.type(y)); // array [ why not object too ]
alert($.type(z)); // array [ why not object too ]

【问题讨论】:

标签: javascript jquery deep-copy


【解决方案1】:

代替

var y = $.extend(true, [], x);

试试

var y = $.extend(true, {}, x);
                       ^^--------- Empty object instead of empty Array

【讨论】:

  • 我尝试了几种不同的方法,但这种方法最适合对象“数组”
【解决方案2】:

在 javascript 中制作对象的深层副本是执行 JSON.parse(JSON.stringify(obj))。根据您的问题,可以按以下方式进行:

var x = {attr1: "value", attr2: "value"};
var deep_copy = JSON.parse(JSON.stringify(x));

【讨论】:

    猜你喜欢
    • 2014-11-03
    • 1970-01-01
    • 2012-07-03
    • 2019-11-12
    • 1970-01-01
    • 1970-01-01
    • 2015-05-06
    • 2015-04-13
    • 2015-04-13
    相关资源
    最近更新 更多