繁体   English   中英

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

[英]How do I iterate through objects stored in a firebase array in JavaScript?

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

我希望这很清楚,在此先感谢您提供的任何帮助!

文档不建议您使用$ firebaseArray的方式( 请参阅此处 ),该方式指出$ firebaseArray是只读的,不应进行操作。

因此,您有几种选择:

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

要么

  • 不要使用$ firebaseArray,因为您使用的方式不正确。 请使用常规的,良好的时尚JavaScript数组。

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

暂无
暂无

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

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