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