为什么我添加到JavaScript数组中的对象在添加后立即读取时返回为未定义?

为什么我添加到JavaScript数组中的对象在添加后立即读取时返回为未定义?,javascript,angularjs,Javascript,Angularjs,我意识到这段代码非常难看,但我在使用JavaScript时遇到了一些问题。我不明白为什么下面的子项不是要派生的任务: var childrenToOperateOn = []; for (var i = 0; i < $scope.derivedTasksToIndent.length; i++) { if($scope.derivedTasksToIndent[i].todosernm == todo.todosern){

我意识到这段代码非常难看,但我在使用
JavaScript
时遇到了一些问题。我不明白为什么下面的
子项
不是要派生的
任务:

          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);
              }
            }
          }
我不确定这是否重要,但我使用的是
AngularJS
,这可能是显而易见的


如何保留正确的值及其属性?我做错了什么?

使用
来。。。而不是针对。。。在

for (var child of childrenToOperateOn) {
    console.log("Confirm child: " + child.todotask);
}
for..of和for..in语句在列表上迭代;不过,迭代的值是不同的,例如..in返回被迭代对象上的键列表,而..of返回被迭代对象的数值属性的值列表


更多信息请点击此处:

使用
获取。。。而不是针对。。。在

for (var child of childrenToOperateOn) {
    console.log("Confirm child: " + child.todotask);
}
for..of和for..in语句在列表上迭代;不过,迭代的值是不同的,例如..in返回被迭代对象上的键列表,而..of返回被迭代对象的数值属性的值列表

更多信息请点击此处: