0

我有 php 返回给 JS 的数据,但我不知道如何循环它来访问信息......我有这个:

    result = call_data('get_chat.php');
            console.log(result);
    for(var data in result){

        alert(result[data]["id"]); //says undefined

    }

控制台日志显示:

   [{"eventtime":"0000-00-00 00:00:00","message":"test2","bywho":"dave","id":"2"},
    {"eventtime":"0000-00-00 00:00:00","message":"testttt","bywho":"dave","id":"1"}]  

所以我想从中循环每个数据,但我该怎么做我真的很困惑!它只是每次都说未定义。

4

2 回答 2

5

如果typeof result === "string",那么您仍然需要先解析响应,然后才能对其进行迭代:

result = JSON.parse(call_data('get_chat.php'));

然后,正如其他人指出的那样,您应该使用for带有 s 的简单循环Array

for (var i = 0, l = result.length; i < l; i++) {
    console.log(result[i]["id"]);
}

for..in循环将迭代所有可枚举的键,而不仅仅是索引。

于 2012-09-04T01:48:43.880 回答
2

看起来您的 php 代码返回一个对象数组,因此您需要先遍历数组,然后id像这样访问键:

for (var i = 0; i < result.length; i++){
  var obj = result[i];
  console.log(obj.id); // this will be the id that you want
  console.log(obj["id"]); // this will also be the id  
}
于 2012-09-04T01:45:41.527 回答