在JavaScript中使用变量访问数组索引
我试图使用一个变量来访问数组值,但得到了一个未定义的错误在JavaScript中使用变量访问数组索引,javascript,arrays,variables,indexing,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(
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>';
}
var客户=;
var键=;
对于(变量i=0;i
如果键[“54”][“keys”]起作用,则表示第一个键是字符串。然后需要将变量设置为字符串
var ordernum = "54";
keys[ordernum][ "keys" ];
或
这可能对你有用:
var ordernum = 54;
keys[ordernum+""][ "keys" ];
你所说的是不可能的(好吧,从技术上讲不是不可能的,但它需要一些基于代理的js魔法,我很确定在你的案例中不存在)
您的钥匙可能不是“54”
,而是“54”
、“054”
或类似的东西
看看钥匙到底是什么,比如
console.log(JSON.stringify(Object.keys(keys)));
另一个非常常见的错误是,您使用的是异步数据采集(AJAX),循环运行得太早(您需要将处理放在回调中,而在进行AJAX调用后立即运行).你能发布问题中的完整代码吗?我已经做了@CertainPerformance,它没有显示客户
或键
数组实际上是什么,这是问题的一部分-你能发布完整的呈现HTML,而不是未知的回送变量吗?创建一个最小的可复制示例。客户
和键
的内容是什么?不要显示
,而是php计算后放置的实际对象,即您在浏览器源代码中看到的代码。我不知道任何js解释器不会自动执行此操作。这个答案显然是错误的,不应该被接受。我不知道有哪个js解释器不会自动这么做@t、 侄女,这就是我用“可能”的原因。根据问题中的解释,问题似乎是因为54
不是字符串。
console.log(JSON.stringify(Object.keys(keys)));