【问题标题】:Use js object params with variable property使用具有可变属性的 js 对象参数
【发布时间】:2012-11-23 12:03:36
【问题描述】:

我有以下数组。

[searchEngineOrder] => Array
        (
            [0] => keyword
            [1] => Google
            [2] => Yahoo
            [3] => Bing/MSN
        )

      [Datagrid] => Array
        (
            [Brand] => Array
                (                    
                    [1] => Array
                        (
                            [keyword] => About Jetwing Hotels Sri Lanka
                            [Google] => 1
                            [Yahoo] => 1
                            [Bing/MSN] => 1
                        )

                    [2] => Array
                        (
                            [keyword] => Dining at Jetwing Kurulubedda
                            [Google] => 1
                            [Yahoo] => 1
                            [Bing/MSN] => 1
                        )
           )       ) 

这是 php 数组。 (我使用json编码)

现在我想创建表。我使用了以下代码。

var headers = data.searchEngineOrder;

        var trs = '<tr><td>Brand</td></tr>';

        var brands = data.Datagrid.Brand;

        for (x in brands) {
            trs += '<tr>';
            for (y in headers) {                    
               // trs += '<td>'+ brands[x].keyword +'</td>';  This is work               
               trs += '<td>'+ brands[x].headers[y] +'</td>';  //This is not work    
            }
            trs += '</tr>';
        }

        $('#keyword-table tbody').html(trs);

如上代码brands[x].keyword 或brand[x].Google 是工作。但是当我使用关键字或谷歌作为变量时,它不起作用。

请帮助我。我该怎么做?

【问题讨论】:

    标签: javascript arrays arrayobject


    【解决方案1】:

    您正在寻找的是带有字符串的括号表示法:

    brands[x]["keyword"]
    

    在 JavaScript 中,您可以通过两种方式访问​​对象属性(即这些属性):

    1. 使用点表示法和文字属性名称,例如foo.property.

    2. 使用括号表示法和字符串属性名称,例如foo["property"].

      在第二种情况下,字符串不必是文字字符串,它可以是任何表达式的结果——包括变量引用。所以:

      var k = "keyword";
      var value = brands[x][k];
      

    【讨论】:

      【解决方案2】:

      你需要:

      brands[x][headers[y]];
      

      即您将brand 与键x 一起使用,然后查找header 与键y,然后使用that 名称作为brand 的属性的变量名称。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-20
        • 2023-04-06
        • 2016-12-17
        • 1970-01-01
        • 2012-07-03
        • 2015-02-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多