Javascript 使用自定义函数打印对象的深度副本
我需要打印一个对象的元素,它是另一个使用自定义函数的对象的深度副本。我能够使用JSON解析/字符串化技巧创建深度副本,但无法实现打印功能Javascript 使用自定义函数打印对象的深度副本,javascript,Javascript,我需要打印一个对象的元素,它是另一个使用自定义函数的对象的深度副本。我能够使用JSON解析/字符串化技巧创建深度副本,但无法实现打印功能 var obj = {a:1, b:{ a:2, c:[1,2,3], d:{ a:3 } } }; const mySnapShot = new Snapshot(object);
var obj = {a:1,
b:{
a:2,
c:[1,2,3],
d:{
a:3
}
}
};
const mySnapShot = new Snapshot(object);
mySnapshot.print('a')// 1
.print('b.c') //[1,2,3]
.print('b.a') // 2
在print方法中传递的参数是字符串。Snapshot是一个包含深度复制和打印方法的类。您可以使用reduce:
var obj={
答:1,,
b:{
答:2,,
c:[1,2,3],
d:{
a:3
}
}
};
功能打印(路径){
常量pathTokens=path.split('.');
const pathValue=pathTokens.reduce((子对象,pathToken)=>{
返回subObj&&subObj[pathToken]| | null
},obj);
返回路径值;
}
console.log(print('a'))//1
控制台日志(打印('b.c'))/[1,2,3]
console.log(print('b.a'))//2
以及您遇到的问题/错误是什么以及快照是什么?快照是一个包含深度复制和打印值方法的类。我可以在构造函数中创建深度副本,但无法实现print方法。您对print方法做了哪些尝试,您遇到了哪些需要帮助的问题?无法处理字符串参数您可以在
上进行拆分
,然后在生成的数组上进行一个简单的循环就足以获得所需的属性。