@Ispanec1998

Как в один ключ передать два и более ключа?

Есть объект
const data = { user: { name: '', age: ''} }
Как нам передать в одних квадратных скобках вложенный путь цепочкой в 2 и более ключей?
Т.е. что бы мы получили data.user.name = 'Boris'
data[user.name] = 'Boris'
  • Вопрос задан
  • 136 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const obj = {
  a: {
    b: {
      c: {
        xxx: 666,
      },
    },
  },
};

const proxy = new Proxy(obj, {
  get(target, key) {
    return key.split('.').reduce((p, c) => p?.[c], target);
  },
  set(target, key, val) {
    const keys = key.split('.');
    const k = keys.pop();
    keys.reduce((p, c) => p[c] ??= {}, target)[k] = val;
    return true;
  },
});

console.log(proxy['a.b.c.xxx']); // 666
proxy['x.y.z'] = 187;
console.log(obj.x.y.z); // 187
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Lynn
@Lynn
nginx, js, css
Никак.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы