如何在JavaScript中遍历存储在firebase数组中的对象?

如何在JavaScript中遍历存储在firebase数组中的对象?,javascript,arrays,firebase,firebase-realtime-database,Javascript,Arrays,Firebase,Firebase Realtime Database,目前,我正在Firebase中存储一些对象。在成功地从Firebase检索项目并将其存储在firebaseArray中之后,我想通过删除firebaseArray中不具有所需属性的元素来进一步细化不需要的元素。现在考虑我的代码,它没有按需执行,但是控制台中没有错误: var querylatestPosts = firebase.database().ref("Topics"); $scope.latestPosts = $firebaseArray(querylatestPosts); con

目前,我正在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中不包含所需属性的特定元素


我希望这是明确的,提前感谢您提供的任何帮助

docs()不推荐您使用$firebaseArray的方式,它声明$firebaseArray是只读的,不应被操纵

因此,您有几个选择:

  • 不应在客户端过滤数组,而应修改用于从Firebase检索数据的查询,以仅获取具有所需属性的元素(例如:在查询中使用“equalTo”)

  • 不要使用$firebaseArray,因为您没有按预期方式使用它。改用一个常规的、好的ol’fashion JavaScript数组

**另外,只是一个一般性的评论:在循环遍历数组时不要删除数组中的元素,因为这通常是一种不好的做法(我们不希望在循环遍历数组时添加/删除数组中的元素)。相反,请使用Array.filter。

文档()不建议您使用$firebaseArray的方式,该文档声明$firebaseArray是只读的,不应进行操作

因此,您有几个选择:

  • 不应在客户端过滤数组,而应修改用于从Firebase检索数据的查询,以仅获取具有所需属性的元素(例如:在查询中使用“equalTo”)

  • 不要使用$firebaseArray,因为您没有按预期方式使用它。改用一个常规的、好的ol’fashion JavaScript数组

**另外,只是一个一般性的评论:在循环遍历数组时不要删除数组中的元素,因为这通常是一种不好的做法(我们不希望在循环遍历数组时添加/删除数组中的元素)。请改用Array.filter。

谢谢!我来试试,谢谢!我来试一试。