当前位置: 首页 > 知识库问答 >
问题:

javascript - JS能否使用字符串链式取值?

云何平
2024-02-01

例如:
obj['a.b.c']

共有3个答案

吉嘉珍
2024-02-01

不可以, 但是可以写个方法:

let obj = {  a: {    b: {      c: 'value'    }  }};let key = 'a.b.c';let value = key.split('.').reduce((acc, cur) => acc && acc[cur], obj);console.log(value);
陈泰宁
2024-02-01

原生不支持,可以用 lodash
https://www.lodashjs.com/docs/lodash.get
image.png

富凯风
2024-02-01

当然可以。在JavaScript中,你可以使用方括号([])语法来通过字符串访问对象的属性。例如,如果你有一个对象如下:

var obj = {  a: {    b: {      c: "value"    }  }};

你可以使用字符串 "a.b.c" 来获取 "value",如下所示:

var path = "a.b.c";console.log(obj[path]); // 输出 "value"

在这个例子中,obj['a.b.c'] 等价于 obj['a']['b']['c']。如果你尝试访问不存在的属性,JavaScript会返回 undefined

 类似资料:
  • 在一个场景中,数据只能通过字符串传输,需要传文件或二进制对象时就比较麻烦。 目前使用将文件编码为base64传输,但是这种方式会时传输的数据增大(50K的文件编码后为80K)。测试使用浏览器的TextDecoder将文件编码为iso-8859-1,可以保持编码后字符串的大小和原文件一样,但是再转回文件时就转不回来了(TextEncoder只支持utf-8) 编码: ====更新===== 现通过以

  • 有什么工具能把 js 字符串的链式访问符 转换成 es5 形式? 我有个在线编辑工具,当我写 const name = data?.name 就报错 我如何把这个字符串转换成 const name = data && data.name 这种形式? 大致看到了 babel 的网站 https://babeljs.io/docs/usage 但是没有找到具体的使用 api... 给它一个字符串帮我转

  • 我有一个密码字段,我需要使用javascript检查它是否有以下字符: ! @ # $ % ^ 我试着这样做,结果正如预期的那样: 有没有更简单/有效的方法来做到这一点?

  • 根据不同的值,判断应该用什么元素,大佬们有什么方法优化一下呀

  • 问题内容: 我试图从一个较大的字符串中提取一个字符串,使它在’:’和’;’之间得到一切。 当前 期望的输出 问题答案: 你可以试试这个

  • 我试图使这个printf工作,但我不断得到一个异常抱怨第一个'%'运算符。我像这样多次使用printf,从来没有出现过问题。我正在使用Eclipse。 为什么我的陈述不起作用,我如何让它起作用? 在第18行,第二个用于表示文本 (不一定是程序中的实际代码) 免责声明:这是一个家庭作业,但我已经为它写好了完整的代码。我只需要克服这个错误,并得到我的老师的许可,就可以发布这样的问题。