Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaScript中使用变量访问数组索引_Javascript_Arrays_Variables_Indexing - Fatal编程技术网

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