使用变量来浏览对象

时间:2016-10-12 18:36:01

标签: javascript html syntax

我想我真的不知道怎么问这个问题让我找到答案。

所以我有三个变量可以使这个函数完成它的工作

    function gatherDataForGeographic(ele) {
        var $this = $(ele)
        var $main_title = $this.find('.options-title'),
            $option = $this.find('.option');
        var arr = []
        var reportAreas = reportManager.getReportAreasObject();


        $option.each(function () {
            var $this = $(this)
            var $checkbox = $this.find('.checkbox');
            var type = $this.data('type'),
                index = $this.data('index');

            if ($checkbox.hasClass('checkbox--checked')) {
                console.log(reportAreas.type)
            } else {
                return true;
            }
        })
        return arr;
    }
    //this will return an object that I need to index  
    var reportAreas = reportManager.getReportAreasObject();

    //this will get the a key that i need from the object 
    var type = $this.data('type');

    //this will give me the index I need to grab
    var index = $this.data('index');

所以我要做的是根据用户选择的选项中的类型(或键)来浏览对象

问题...... 它正在寻找reportArea.type[index]并且没有将其识别为变量而且我不断获得undefined因为.type不存在。

有没有办法让它看到该类型是变量而不是键?

2 个答案:

答案 0 :(得分:1)

您可以使用括号语法在JS中使用动态属性,而不是点语法:

reportAreas[type]

这将解析为reportAreas['whateverString'],相当于reportAreas.whateverString - reportAreas.type但是,type属性的文字检查。

答案 1 :(得分:1)

reportArea[type][index]

JavaScript对象只是键值对,点语法只是数组符号的语法糖。

object['a']

object.a

基本上是一样的。