Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用自定义函数打印对象的深度副本_Javascript - Fatal编程技术网

Javascript 使用自定义函数打印对象的深度副本

Javascript 使用自定义函数打印对象的深度副本,javascript,Javascript,我需要打印一个对象的元素,它是另一个使用自定义函数的对象的深度副本。我能够使用JSON解析/字符串化技巧创建深度副本,但无法实现打印功能 var obj = {a:1, b:{ a:2, c:[1,2,3], d:{ a:3 } } }; const mySnapShot = new Snapshot(object);

我需要打印一个对象的元素,它是另一个使用自定义函数的对象的深度副本。我能够使用JSON解析/字符串化技巧创建深度副本,但无法实现打印功能

    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方法做了哪些尝试,您遇到了哪些需要帮助的问题?无法处理字符串参数您可以在
上进行
拆分
,然后在生成的数组上进行一个简单的循环就足以获得所需的属性。