我正在从JSON创建一些对象,我想为对象创建一个空副本。我将拥有所有相同的属性,但空值。有什么好的方法可以做到这一点?
现在,我正在按照以下步骤进行操作,但希望它对于从接收到的JSON创建的对象而言是动态的。
var myObject = { "Address": { "Address1": "", "Address2": "", "Address3": "", "Address4": "", "City": "", "": "", "": "", "Country": "", "Id": -1, "LastModified": "", "PostBackAction": null }, "Id": -1, "Amenities": "", "Directions": "", "LastModified": "", "LocalAttractions": "", "LocalLodging": "", "LocalRestaraunts": "", "Name": "", "Pictures": "", "Prices": "", "Region": 0, "PostBackAction": null };
一种可能的解决方案,因为它会复制值,所以不起作用。
var myObject = JSON.parse(JSON.stringify(objectToBeCopied));
您可以使用创建对象结构副本并为每种数据类型使用默认值的函数:
function skeleton(source, isArray) {
var o = Array.isArray(source) ? [] : {};
for (var key in source) {
if (source.hasOwnProperty(key)) {
var t = typeof source[key];
o[key] = t == 'object' ? skeleton(source[key]) : { string: '', number: 0, boolean: false }[t];
}
}
return o;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句