[英]Loop through object with multidimensional array
我使用promise來從服務器獲取一些數據。 在承諾成功中我做到了
promise.success(function (data, status) {
for (i = 0; i <= data.data.length; i++){
$scope.anArray[i] = data.data[i][1] ;
}
}
我這樣做是因為來自服務器的data
具有這種結構
{"result":"answered","data":[["jake","508"],["amir","602"],["ben","450"]]}
並且我只想獲取數字508,602和450。但是我總是得到相同的錯誤TypeError: Cannot read property '0' of undefined
與該行相對應: $scope.anArray[i] = data.data[i][0] ;
。
這些數字被饋送到庫中以創建圖表。 有時會創建圖表,有時則不會。 即使創建了該錯誤,也始終存在相同的錯誤。
我不知道如何解決該錯誤以及如何始終創建圖表而沒有任何問題。 看起來代碼不喜歡data.data[i][0]
結構,具有像data.data[i]
這樣的簡單數組不會產生錯誤。
我該怎么辦?
謝謝
您的for循環具有額外的執行力。 您已將i
初始化為0
但還使用了<=
,這意味着您將在沒有array[array.length]
上執行。 這將返回undefined
並且當您嘗試訪問該undefined
的[0]
索引時,會收到該錯誤。
改成
for (i = 0; i < data.data.length; i++){
如果你能親自做作業,我會選擇
$scope.anArray = data.data.map(entry => entry[1]);
並完全跳過for循環。 請注意,如果您想避免使用lambda,則應為
$scope.anArray = data.data.map(function(entry) { return entry[1]; });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.