此刻,我正在Firebase中存储一些对象。从Firebase成功检索项目并将它们存储在firebaseArray中之后,我想通过删除firebaseArray中不具有所需属性的元素来进一步剔除不需要的元素。现在考虑一下我的代码,它并没有按要求执行,但是控制台中没有错误:
var querylatestPosts = firebase.database().ref("Topics");
$scope.latestPosts = $firebaseArray(querylatestPosts);
console.log($scope.latestPosts) ;
$scope.latestPosts.forEach(function(el) {
if ($scope.checkWorldview(el) == false) {
delete $scope.latestPosts.el ;
}
});
(请注意,我无法在控制台中登录“ el”,forEach似乎也无法执行,因为我无法在控制台的功能中进行任何记录)
在不同实例中馈入元素时,“ checkWorldview”函数的行为符合预期,如果所考虑的元素中不存在必需的属性,则返回false。因此,如果函数返回false,我想删除$ scope.latestPosts中不包含所需属性的特定元素。
我希望这很清楚,在此先感谢您提供的任何帮助!
答案 0 :(得分:2)
文档(see here)不建议您使用$ firebaseArray的使用方式,该文档指出$ firebaseArray是只读的,不应进行操作。
因此,您有一些选择:
OR
**另外,只是一般性的评论:循环遍历时不要从数组中删除元素,因为这通常是不好的做法(我们不希望数组在循环遍历时添加/删除元素) 。而是使用Array.filter。