繁体   English   中英

Angular.forEach循环无法正常工作

[英]Angular.forEach loop is not working properly

PFB我的自定义过滤器的代码,其中包含一个参数viewbookoption ,这是一个下拉值。 基于下拉值,数据将显示在网格中。我在这里实现了forEach循环,但它无法正常运行,并且不断遍历该循环,使我接近10000条记录,但实际上我只有10条记录需要显示在网格中。

在这方面的任何帮助将不胜感激。

    Controllers.filter('filterUnissued', function() {
     return function(books, viewbookoption) {
       if (viewbookoption == "All Books") {
         return books;
       } else {
         angular.forEach(books, function(book) {
           if (book.issued == false) {
             books.push(book);
           }
        });
      }
      return books;
    }
});

您正在将元素推到现有的books数组上。 相反,您应该创建一个新数组并将其压入该数组。 像这样:

var filteredBooks = []
angular.forEach(books, function(book) {
   if (book.issued == false) {
     filteredBooks.push(book);
   }
});
return filteredBooks;

或者,最好使用Array.filter.prototype方法:

return books.filter(function(book) {
  return book.issued === false;
});

(此外,除非有充分的理由使用==,否则始终使用===而不是==。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM