[英]What am I doing wrong in this javascript loop operation?
我已經使用AJAX從php調用了一些數據,如果我編寫了alert(data.a),結果將如下所示:
({a:[{my_id:"34", name:"Dave"}, {my_id:"39", name:"Barry"}]}
我不確定如何遍歷此過程以提取值。
我的最新代碼...
for (var key in data.a)
{
if (data.a.hasOwnProperty(key))
{
alert(key + " -> " + data.a[key]);
}
}
...顯示
0 -> [object Object]
這也顯示相同的內容...
for (var i=0, tot=data.a.length; i < tot; i++)
{
for (var key in data.a[i])
{
if (data.a[i].hasOwnProperty(key))
{
alert(key + " -> " + data.a[i][key]);
}
}
}
遍歷這些結果以提取要顯示的數據的訣竅是什么?
如果有幫助,這是我在php末尾發送的內容...
$x['a'] = $myArray;
echo json_encode($x);
感謝您的時間和幫助。
你是在追求這樣的東西嗎? 遍歷所有對象,打印出它們的所有屬性和值?
for (var i = 0; i < data.a.length; i++) {
var objectInArray = data.a[i];
var keys = Object.keys(objectInArray);
for (var j = 0; j < keys.length; j++) {
var key = keys[j];
alert(key + " -> " + objectInArray[key]);
}
}
在for循環中執行data.a[key]
時,您將得到一個json對象: {my_id:"34", name:"Dave"}
for key = 0,而{my_id:"39", name:"Barry"}
for key =1。因此,要獲取值,您應該執行以下操作:
for (var key in data.a)
{
if (data.a.hasOwnProperty(key))
{
alert(key + " -> " + data.a[key].my_id);
// data.a[key].name to get name attribute
}
}
只是
for (var i=0; i < data.a.length; i++) {
alert(data.a[i].my_id + " -> " + data.a[i].name);
}
在您的示例中, data.a
是對象數組,因此可以運行:
for (var i = 0; i < data.a.length; i++) {
console.log('my_id: ' + data.a[i].my_id);
console.log('name: ' + data.a[i].name);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.