使用多维数组循环遍历对象
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]; });
我在 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]; });