【问题标题】:How do I iterate through objects stored in a firebase array in JavaScript?如何在 JavaScript 中遍历存储在 firebase 数组中的对象?
【发布时间】:2018-06-25 21:05:47
【问题描述】:

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

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

【问题讨论】:

    标签: javascript arrays firebase firebase-realtime-database


    【解决方案1】:

    文档 (see here) 不推荐您使用 $firebaseArray 的方式,其中指出 $firebaseArray 是只读的,不应被操纵。

    所以你有几个选择:

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

    • 不要使用 $firebaseArray,因为您没有按照预期的方式使用它。请改用常规的、良好的时尚 JavaScript 数组。

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

    【讨论】:

    • 谢谢!我会试一试。
    猜你喜欢
    • 2021-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多