使用多维数组循环遍历对象

Loop through object with multidimensional array

我在 angular 中使用 promises 从服务器获取一些数据。我承诺成功

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] 上执行。 returns 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]; });