使用变量访问JavaScript中的数组索引

时间:2018-05-26 06:02:50

标签: javascript arrays variables indexing

我试图使用变量来访问数组值,但是我得到了一个未定义的错误。

var ordernum = 54;
keys[ordernum][ "keys" ];

Uncaught TypeError: Cannot read property 'keys' of undefined

如果我做keys["54"][ "keys" ];它就可以了。但是,我需要使用变量,因为此代码位于for循环中。

如何使用变量获得相同的结果?

完整代码:

    var customers = <?php if ( isset($customers) ) { echo json_encode($customers); } ?>;
    var keys = <?php if ( isset($keystable) ) { echo json_encode($keystable); } ?>;

for ( var i = 0; i < customers.length; i++ ) {
            var ordernum = customers[ i ][ "order" ];
            table += '<tr bgcolor="#ffffff">';
            table += '<td>' + customers[ i ][ "email" ] + '</td>';
            table += '<td>' + customers[ i ][ "org" ] + '</td>';
            table += '<td style="width:450px;">' + customers[ i ][ "notes" ] + '</td>';
            table += '<td>' + keys[ordernum.toString()][ "keys" ] + '</td>';
            table += '</tr>';
        }

3 个答案:

答案 0 :(得分:0)

这可能适合你:

var ordernum = 54;
keys[ordernum+""][ "keys" ];

答案 1 :(得分:-1)

如果键[&#34; 54&#34;] [&#34;键&#34;]正在工作,则表示第一个键是一个字符串。然后你需要使变量成为一个字符串。

var ordernum = "54";
keys[ordernum][ "keys" ];

var ordernum = 54;
keys[ordernum.toString()][ "keys" ];

答案 2 :(得分:-1)

你所说的是不可能的(好吧,不是技术上不可能,但它需要基于代理的一些js魔法,我很确定你的情况不存在。)

您的密钥可能不是"54",而是" 54""054"或类似内容。

使用

之类的内容查看密钥的内容
console.log(JSON.stringify(Object.keys(keys)));

另一个经常出现的错误是您正在使用异步数据收集(AJAX)并且您的循环运行得太早(您需要将处理放在回调中,而是在进行AJAX调用后立即运行它)