Печать глубокой копии объекта с использованием настраиваемой функции - PullRequest
0 голосов
/ 06 августа 2020

Мне нужно распечатать элементы объекта, который является глубокой копией другого объекта, используя настраиваемую функцию. Я могу создать глубокую копию, используя трюк JSON parse / stringify, но не могу реализовать функцию печати. ​​

    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 - это класс, который содержит методы для глубокого копирования и печати. ​​

1 Ответ

1 голос
/ 06 августа 2020

Вы можете использовать сокращение:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...