簡體   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