gpt4 book ai didi

javascript - 具有动态名称的嵌套对象属性

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:13:22 25 4
gpt4 key购买 nike

<分区>

上下文:我正在为我的应用程序设置编写一个 Redux reducer(尽管这个问题不是特定于 Redux 的),它是一个嵌套对象。我想使用动态给定的属性名称修改设置对象。

例子:

const settings = {
service: {
username: 'TEST',
password: ''
}
}

// Normally this would be passed by Redux, but for the purposes of this exercise it's hardcoded

const settingKey = 'service.username';

console.log(settings[settingKey]); // undefined

console.log(eval(`settings.${settingKey}`)); // works, but bad

我能想到的不使用 eval 访问子对象的唯一方法是使用正则表达式将 settingKey 拆分为其组成部分:

const match = /(.+)\.(.+)/.exec(settingKey);
console.log(settings[match[1]][match[2]];

const settings = {
service: {
username: 'TEST',
password: ''
}
}

const settingKey = 'service.username';

const match = /(.+)\.(.+)/.exec(settingKey);

console.log(settings[match[1]][match[2]]);

这行得通,但是

  1. 很丑
  2. 它不适用于更深层嵌套的对象

有没有一种方法可以在不使用正则表达式或 eval 的情况下使用动态名称访问嵌套对象的属性?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com