Answer

Answer

t.me/js_test

Ответ:

{ '1': 2, '2': 4, '3': { '4': 8, '5': { '6': 12 } } }

Объяснение:

У функции JSON.parse есть один необязательный параметр который называется reviver, если передать туда функцию то можно как-нибудь изменить значение каждого получаемого элемента перед тем как всё соберётся в один объект. Если идти по порядку то сначала нужно обработать вариант когда reviver принимает весь объект целиком, в этот момент значение key равно пустой строке - нужно просто вернуть этот объект. Далее в примере идёт проверка на то является ли значение(value) числом, если да то возвращается это число умноженное на два, если же нет то значение возвращается нетронутым.

Код:

const obj = { 1: 1, 2: 2, 3: { 4: 4, 5: { 6: 6 } } };
const strObj = JSON.stringify(obj);

const pObj = JSON.parse(strObj, (key, value) => {
    if (key === "") {
        return value;
    }

    if (typeof value === "number") {
        return value * 2;
    }

    return value;
});

console.log(pObj);

Report Page