通过深度索引访问数组元素
Accessing array elements by deep index
我在访问一个元素时遇到问题,该元素位于资源树的最后一个叶子上。不过,我在使用迭代器迭代元素时遇到了问题。我想得到$scope.values数组中每个值的type.id。它们都具有type.id属性。
罪犯:
for (var i=0; i < $scope.values.length; i++) {
Type.getType({id:$scope.values[i].type.id}, function (results) {
$scope.values[i].type = results;
return results;
});
}
提供:TypeError:无法设置未定义的属性"type"
错误的行和行将光标放在:$scope.values[i].type=results;然而,我可以很好地记录结果,它是一个有2个项目的资源数组
然而,如果我在两个地方都更改了这两种更标准的访问元素的方法,它们就可以正常工作。
$scope.values[0]
或
$scope.values["0"]
我在这里错过了什么?
你不知道Type.getType是做什么的,所以我不知道你作为第二个参数应用的函数什么时候被调用,也许它是回调?。但我很确定,当调用这个函数时,I的值并不是你想要的。这不是一个闭包,我似乎在全局范围内。
你可以这样试试:
for (var i=0; i < $scope.values.length; i++) {
Type.getType({id:$scope.values[i].type.id}, function (results) {
var index = i;
$scope.values[index].type = results;
return results;
});
}
相关文章:
- 访问JSON对象内部的数组元素
- 如何访问数组中的数组元素(JavaScript)
- 访问标记图标的图像数组元素
- 访问数组的特定元素
- JavaScript:通过其他数组元素的索引访问ArrayElement?array[array[0]返回undefin
- Javascript如何正确访问关联数组元素
- 是否可以在不使用索引号的情况下访问 json 数组元素
- 从 QML 中的 ListModel 访问 Javascript 数组元素
- 从 C# 访问 JavaScript 数组元素(通过 WebBrowser)
- 通过初始化循环访问数组中元素的属性来创建计数对象
- Meteor:访问数组元素中的javascript对象元素
- 通过深度索引访问数组元素
- Angular js/ JavaScript访问数组元素
- angular-Js:不能在同一个控制器的不同函数调用中访问数组元素
- 在javascript中使用多个数字来访问数组's元素:为什么这样做呢?
- jQuery:无法使用变量和数组文字访问数组元素
- 从内部函数的父作用域访问数组元素
- 什么's使用php访问数组元素中的字段的正确方法
- 从 Javascript 中作为字符串接收的数组名称访问数组元素
- 在For循环中从函数内部访问数组元素