javascript - JS 对象 : dot notation inside bracket notation, 列出了括号内的表示法

标签 javascript arrays object

我有一个像这样的对象:

var myob= {
title: 'Hey',
list: [3, 74, 25],
myObject: {
  myName: {
   first: "Joe",
   second: "Flynn"
}
}

我正在尝试通过括号表示法访问内部内容。

myob["title"] //works fine, returns 'Hey'
myob["list[0]"] //Doesn't work, returns undefined
myob["myObject[objectTitle]"] //Doesn't work, returns undefined

为什么这不起作用?有没有办法可以做到这一点,最好仍然在括号内使用相同的内容...?

链接到 jsfiddle:https://jsfiddle.net/j24dxpao/

最佳答案

对于这些基于字符串的嵌套对象访问,您可能想要使用像 lodash's get 这样的库。或等效的,因为它本身是不可能的。

const _ = require("lodash")
const schoolEvent = {
    guests: [
        {name: "John", handsome: true},
        {name: "Ben", handsome: false}
    ]
}

_.get(schoolEvent, "guests[0].name") // "John"

关于javascript - JS 对象 : dot notation inside bracket notation, 列出了括号内的表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47204733/

相关文章:

javascript - 未定义从附加数组中返回

javascript - 在水平列表上用鼠标滚轮水平滚动

javascript - Bootstrap 验证器不工作

javascript - 如何将对象数组展平为每个对象参数的数组?

java - 如何正确实例化您在 JUnit 5 中在 before Hook 中测试的类中的对象?

javascript - 通过其字段之一获取数组中的对象

javascript - Resolve Promise.all 包含带有超时的 promise 数组

c - 使用 C qsort() 对结构体中的动态数组进行排序

javascript - 如何从数组中删除单引号

c++ - 制作对象数组并在 C++ 中使用重载 []