我使用角度承诺从服务器获取一些数据。在承诺的成就我做使用多维数组循环对象
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]
不会创建一个错误。
我该怎么办?
谢谢
使用'angular.forEach()'是方式更清洁,并已在lib核心。 https://docs.angularjs.org/api/ng/function/angular.forEach – sbaaaang
@sbaaaang我选择Paarths答案作为正确的答案,因为它需要最少量的编辑来修复我的代码。但是你的建议也非常好,我甚至忘记了'forEach'。谢谢您的帮助。 – slevin
当然不用担心,只要记住angular.forEach()就是一个循环更清洁,更易于使用,当你有这个时使用普通js没有任何意义;) – sbaaaang