我正在使用包含属性的对象,该属性的值可以是字符串类型或数字类型。一些属性是嵌套对象,并且这些嵌套对象还包含属性,其值可以是字符串类型或数字类型。以以下对象为简化示例:
var myObj = {
myProp1: 'bed',
myProp2: 10,
myProp3: {
myNestedProp1: 'desk',
myNestedProp2: 20
}
};
我希望所有这些值都是字符串类型,因此任何类型为数字的值都需要转换。
实现这一目标的最有效方法是什么?
我试过使用for..in,还使用了Object.keys,但未成功。任何见解将不胜感激。
Object.keys应该很好,找到嵌套对象时只需要使用递归即可。要将某些内容转换为字符串,只需使用此技巧即可
var str = '' + val;
var myObj = {
myProp1: 'bed',
myProp2: 10,
myProp3: {
myNestedProp1: 'desk',
myNestedProp2: 20
}
};
function toString(o) {
Object.keys(o).forEach(k => {
if (typeof o[k] === 'object') {
return toString(o[k]);
}
o[k] = '' + o[k];
});
return o;
}
console.log(toString(myObj));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句