我有一个这样的对象:
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/
答案 0 :(得分:1)
每个索引都必须用它自己的括号括起来。
要使用这些路径访问这些对象,请使用
myob["title"]
myob["list"][0]
myob["myObject"]["objectTitle"]
答案 1 :(得分:1)
对于这些基于字符串的嵌套对象访问,您可能希望使用类似lodash's get的库或等效库,因为它本身不可能。
const _ = require("lodash")
const schoolEvent = {
guests: [
{name: "John", handsome: true},
{name: "Ben", handsome: false}
]
}
_.get(schoolEvent, "guests[0].name") // "John"
答案 2 :(得分:0)
var myob= {
title: 'Hey',
list: [3, 74, 25],
myObject: {
myName: {
first: "Joe",
second: "Flynn"
}
}
可以通过
访问每个密钥myob['title']
myob['list'][0]
myob['myObject']['objectTitle']