Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular.forEach循环工作不正常_Javascript_Angularjs - Fatal编程技术网

Javascript Angular.forEach循环工作不正常

Javascript Angular.forEach循环工作不正常,javascript,angularjs,Javascript,Angularjs,PFB我的自定义过滤器的代码,其中包含一个参数viewbookoption,该参数是一个下拉值。 根据下拉值,数据将显示在网格中。我在这里实现了forEach循环,但它工作不正常,它不断地遍历循环,给我近10000条记录,但实际上我只有10条记录,应该显示在网格中 在这方面的任何帮助都将不胜感激 Controllers.filter('filterUnissued', function() { return function(books, viewbookoption) {

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;
    }
});

您正在将元素推送到现有的
书籍
数组中。相反,您应该创建一个新的数组并将其推到上面。像这样:

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;
});

(另外,除非您有很好的理由使用==,否则始终使用===而不是==)

您正在将元素推送到现有的
书籍
数组中。相反,您应该创建一个新的数组并将其推到上面。像这样:

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;
});

(另外,除非您有很好的理由使用==,否则请始终使用===而不是==)

您正在迭代要推入的相同数组是的!!我的错..谢谢你的指导你正在迭代你正在推进的相同数组是的!!我的错..谢谢你的guidanceNo问题!欢迎来到Stackoverflow。我希望你在这里发现它有用。没问题!欢迎来到Stackoverflow。我希望你在这里觉得有用。