簡體   English   中英

遍歷具有多維數組的對象

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM