Javascript 如何访问JS对象中的数组元素?
我在访问数组中的元素时遇到问题。下面是一个示例代码:Javascript 如何访问JS对象中的数组元素?,javascript,Javascript,我在访问数组中的元素时遇到问题。下面是一个示例代码: var Core = { customNames: { '1': [ 'Power Off' ], '21': [ 'TV', 'Bedroom' ] }, render: function() { $.each( Core.devices.result, function( i, obj ) { var name = Core.cu
var Core = {
customNames: {
'1': [ 'Power Off' ],
'21': [ 'TV', 'Bedroom' ]
},
render: function() {
$.each( Core.devices.result, function( i, obj ) {
var name = Core.customNames[obj.idx][1] ? Core.customNames[obj.idx][1] : obj.Name;
});
}
};
idx是一个变量,比如说值为21。在这种情况下,如何访问“卧室”?在渲染功能中尝试
此
render: function() {
var that = this;
$.each( this.devices.result, function( i, obj ) {
var name = that.customNames[obj.idx][1] ? that.customNames[obj.idx][1] : obj.Name;
});
}
您必须将设置为该
,因为$内的作用域会发生变化
下面是我测试过的一个例子,它是有效的:
var-thing={
客户名称:{
“1”:[“关机”],
“21”:[“电视”,“卧室”]
},
日志:函数(){
log(“这被记录在这里:+This.customNames['21'][0]);
}
}
thing.log()
已解决!访问数组元素没有问题,但customNames对象不完整。正确代码:
var name = Core.customNames[obj.idx] != undefined ? Core.customNames[obj.idx][0] : obj.Name;
这回答了你的问题吗?设备似乎没有在任何地方定义。嘿,特拉维斯,这只是代码的一部分,设备在其他地方定义。不幸的是。。。“Uncaught TypeError:无法读取undefined的属性“1”:(可能是that.customNames[obj.idx]
未定义,因为在字典中找不到键obj.idx
)。是的,确切地说:)好吧,也许你可以将我的答案标记为答案,看起来很有效!