gpt4 book ai didi

javascript - 如何在 JavaScript 中迭代存储在 firebase 数组中的对象?

转载 作者:行者123 更新时间:2023-12-01 01:56:04 25 4
gpt4 key购买 nike

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

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

最佳答案

文档 ( see here ) 不推荐您使用 $firebaseArray 的方式,该文档声明 $firebaseArray 是只读的,不应进行操作。

所以你有几个选择:

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

或者

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

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

关于javascript - 如何在 JavaScript 中迭代存储在 firebase 数组中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51031785/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com