是什么导致我的javascript语句无限循环?

chu*_*nce 1 javascript

输入for循环后,它永远不会停止:

 remove: function remove(e) {
     var objectToRemoveId = e.currentTarget.getAttribute('objectId').toString();
     var filteredList = this.myDto.objectList;

     for (var index = 0; index < this.myDto.objectList.length; index++) {
          var currentObject = this.myDto.objectList[index];

       if (currentObject.Id !== objectToRemoveId) {
         filteredList[filteredList.length + 1] = timeSheet;
       }
     }
  } 
Run Code Online (Sandbox Code Playgroud)

假设this.myDto.ObjectList是一个包含一个元素的数组.我确定问题只是盯着我看,但我无法弄清楚.

Nic*_*ver 9

你在循环中添加了相同的列表,所以每次循环时,你this.myDto.objectList.length都会上升一个.看起来你想要一个空数组:

var filteredList = this.myDto.objectList;
Run Code Online (Sandbox Code Playgroud)

像这样:

var filteredList = [];
Run Code Online (Sandbox Code Playgroud)

或副本,如下:

var filteredList = this.myDto.objectList.slice();
Run Code Online (Sandbox Code Playgroud)

我不确定最终结果应该是什么,添加到名为filtered的列表会让我失望,但在任何一种情况下,你可能都是在上面的一个解决方案之后.