繁体   English   中英

使用自定义 function 打印 object 的深拷贝

[英]Printing deepcopy of an object using custom function

我需要使用自定义 function 打印另一个 object 的深层副本 object 的元素。 我能够使用 JSON 解析/字符串化技巧创建深层副本,但无法实现打印 function。

    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

在打印方法中传递的 Arguments 是字符串。 Snapshot 是一个 class,其中包含用于深度复制和打印的方法。

您可以使用减少:

 var obj = { a: 1, b: { a: 2, c: [1, 2, 3], d: { a: 3 } } }; function print(path) { const pathTokens = path.split('.'); const pathValue = pathTokens.reduce((subObj, pathToken) => { return subObj && subObj[pathToken] || null }, obj); return pathValue; } console.log(print('a')) // 1 console.log(print('b.c')) //[1,2,3] console.log(print('b.a')) // 2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM