如何访问JS对象内的数组元素?

时间:2019-12-30 22:11:45

标签: javascript

我在访问数组内部的元素时遇到问题。这是示例代码:

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;
        });
    }

};

obj.idx是一个变量,用值21来说。在这种情况下,如何访问“卧室”?

2 个答案:

答案 0 :(得分:0)

在渲染功能中尝试this

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;
        });
    }

您必须设置that,因为$.each内部的范围会发生变化!

这是我测试过的示例,它可以正常工作:

var thing = {
    customNames: {
        '1':    [ 'Power Off' ],
        '21':   [ 'TV', 'Bedroom' ]
    },
    log: function(){
        console.log("This got logged inside here: " + this.customNames['21'][0]);
    }
}

thing.log()

问候!

答案 1 :(得分:0)

解决了!访问数组元素不是问题,但customNames对象不完整。正确的代码:

var name = Core.customNames[obj.idx] != undefined ? Core.customNames[obj.idx][0] : obj.Name;