如何在javascript中访问另一个对象中的嵌套对象?
我正在使用Vue.js,我有一个数据对象,我想动态访问属性。但我似乎无法动态访问filters对象的属性如何在javascript中访问另一个对象中的嵌套对象?,javascript,object,vue.js,vue-router,Javascript,Object,Vue.js,Vue Router,我正在使用Vue.js,我有一个数据对象,我想动态访问属性。但我似乎无法动态访问filters对象的属性 export export default { template: ``, data() { return { something: 'This is some value.', filters: { fullSearch: 'This is full search.'
export export default {
template: ``,
data() {
return {
something: 'This is some value.',
filters: {
fullSearch: 'This is full search.'
}
}
}
}
我可以访问“某物”,但无法动态访问filters.fullSearch
export export default {
template: ``,
data() {
return {
something: 'This is some value.',
filters: {
fullSearch: 'This is full search.'
}
}
}
}
这很有效
console.log(this['something']) // This is some value.
但这是行不通的
console.log(this['filters.fullSearch']) // Component.js:589 undefined
这是完整的代码。我正在遍历此.$route.query的所有属性,并将它们分配给我的数据中的筛选器,如下所示。但它不起作用。我做错了什么
for (let [key, value] of Object.entries(this.$route.query)) {
if (this['filters.' + key] !== undefined) {
this['filters.' + key] = value
}
}
您需要用右键寻址内部对象 或具有静态属性
this.filters.fullSearch
您已经混合了点和括号符号。以下解决方案将起作用
for (let [key, value] of Object.entries(this.$route.query)) {
if (this['filters'][key] !== undefined) {
this['filters'][key] = value
}
}
应该是
console.log(this['filters']['fullSearch'])
或
或
console.log(此['filters']['fullSearch'])将起作用。第一个的可能重复会产生语法错误:未捕获的语法错误:意外标识,这是因为字符串末尾没有
”
(单引号)。第一个给出-syntax错误:未捕获的语法错误:意外标识是否尝试了此操作['filters']['fullSearch']?是否使用括号中的键作为字符串?
console.log(this['filters'].fullSearch)
console.log(this.filters.fullSearch)