我意识到此代码非常丑陋,但是我在JavaScript
上遇到了一些麻烦。我看不出为什么以下child
不是a task to derive from
:
var childrenToOperateOn = [];
for (var i = 0; i < $scope.derivedTasksToIndent.length; i++) {
if($scope.derivedTasksToIndent[i].todosernm == todo.todosern){
childrenToOperateOn.push($scope.derivedTasksToIndent[i]);
console.log("Affecting child: " + $scope.derivedTasksToIndent[i].todotask);
for (var child in childrenToOperateOn) {
console.log("Confirm child: " + child.todotask);
}
}
}
相反,当我尝试从childrenToOperateOn
数组中读回值时,我会得到undefined
:
(index):145 Affecting child: A task to derive from
(index):147 Confirm child: undefined
我不确定是否重要,但是我正在使用AngularJS
,这可能很明显。
我将如何保留适当的价值及其属性?我在做什么错?
使用for ... of
代替for ... in
。
for (var child of childrenToOperateOn) {
console.log("Confirm child: " + child.todotask);
}
for..of和for ..在语句中迭代列表;但是,迭代的值不同,因为..在返回迭代的对象上的键列表,而for..of返回迭代对象的数字属性的值列表。
更多信息在这里:https://www.typescriptlang.org/docs/handbook/iterators-anderators-anderators-and-generators.html