JS对象:括号内的点表示法,括号内的列表

时间:2017-11-09 14:45:24

标签: 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/

3 个答案:

答案 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']