如何使用jquery访问多维数组中的数据?

如何使用jquery访问多维数组中的数据?

问题描述:

我正在使用ajax调用服务器并获取一些用户数据。服务器返回格式化像下面的数组:如何使用jquery访问多维数组中的数据?

array:6 [▼ 
    0 => array:17 [▼ 
    "id" => 334 
    "provider" => "some_provider" 
    "option_id" => "x124223" 
    "option_title" => "title" 
    "api_parameter" => "parameter" 
    "chart_title" => "title" 
    "chart_color" => "#6a76fc" 
    "chart_target" => "2220" 
    "chart_type" => "line" 
    "chart_size" => "4" 
    "chart_data" => array:7 [▼ 
     239 => array:2 [▼ 
     "data" => 2114 
     "created_at" => "14/August" 
     ] 
     240 => array:2 [▼ 
     "data" => 2114 
     "created_at" => "15/August" 
     ] 
     241 => array:2 [▶] 
     242 => array:2 [▶] 
     243 => array:2 [▶] 
     244 => array:2 [▶] 
     245 => array:2 [▶] 
    ] 
    "average" => 2122.0 
    "current" => array:2 [▶] 
    "last" => array:2 [▶] 
    "current_status_icon" => "md-trending-neutral" 
    "current_status_color" => "#3DDCF7" 
    "status_message" => "hmm... The needle didnt move." 
    ] 
    1 => array:17 [▼ 
    "id" => 345 
    "provider" => "some_other_provider" 
    "option_id" => "x124" 
    "option_title" => "Title" 
    "api_parameter" => "parameter" 
    "chart_title" => "title" 
    "chart_color" => "#6A76FC" 
    "chart_target" => "Set a target" 
    "chart_type" => "line" 
    "chart_size" => "4" 
    "chart_data" => array:7 [▼ 
     202 => array:2 [▼ 
     "data" => 5 
     "created_at" => "13/August" 
     ] 
     203 => array:2 [▼ 
     "data" => 5 
     "created_at" => "14/August" 
     ] 
     204 => array:2 [▶] 
     205 => array:2 [▶] 
     206 => array:2 [▶] 
     207 => array:2 [▶] 
     208 => array:2 [▶] 
    ] 
    "average" => 5.0 
    "current" => array:2 [▼ 
     "data" => 5 
     "created_at" => "16/August" 
    ] 
    "last" => array:2 [▼ 
     "data" => 5 
     "created_at" => "16/August" 
    ] 
    "current_status_icon" => "md-trending-neutral" 
    "current_status_color" => "#3DDCF7" 
    "status_message" => "hmm... The needle didnt move." 
    ] 

然后我尝试使用foreach循环

$.ajax({url: "/url/to/server", success: function(result){ 
    result.forEach(function(item) { 
     console.log(item['chart_data']['data']); 
    }); 
    }, complete: function() { 
     // Schedule the next request when the current one's complete 
     setTimeout(checkForUpdates, 3000); 
    } 
    }); 
}); 

在阵列中访问数据,但是这只是记录undefined。我如何访问嵌套在每个*数组中的chart_data?

+1

您需要访问嵌套数组:'chart_data'是一个数组,它具有有'data'属性元素。所以你需要另一个嵌套循环 – trincot

+0

@trincot谢谢我试过这个。我得到一个错误,读取'未捕获的TypeError:item.chart_data.forEach不是函数' – kevinabraham

+0

JSON输出来自哪里? PHP?语法不正确。如果你在你的问题中包含你在执行'console.log(JSON.stringify(result))'时得到的输出将会很有用。这样我们将看到正确的JSON。 – trincot

您的数据结构并不清晰,因为您共享的结构是以PHP表示法输出的,并不代表您在JavaScript中接收到的JSON。

但我的猜测是,这将工作:

result.forEach(function(item) { 
    Object.keys(item.chart_data).forEach(function (key) { 
     console.log(item.chart_data[key].data); 
    }); 
}); 
+0

非常感谢@trincot这工作。 – kevinabraham