迭代嵌套的firebase对象 – Javascript

如何遍历嵌套的firebase对象。

Publications- | |-Folder1------ | |-hdgjg76675e6r- | | |-Name | | |-Author | | | |+-hdgjdsf3275e6k | |+-hd345454575e6f |+-Folder2 

在出版物我有文件夹和文件夹我有对象(包含属性,如。姓名,作者)

我已经遍历文件夹到现在为止。

 snapshot.forEach(function (snapshot) { var key = snapshot.key(); var obj = snapshot.val(); console.log(key); //output => Folder1 , Folder2 etc }); 

当我打印obj

 console.log(obj); 

它显示

在此处输入图像描述

我如何迭代obj变量,因为它包含hdgjg76675e6rhdgjdsf3275e6k等以及进一步?

你的obj只是一个普通的javascript对象,你可以使用一个简单的for循环:

 for(var key in obj) { console.log(obj[key]); } 

或者您可以在快照上再次使用forEach

 folderSnapshot.forEach(function (objSnapshot) { objSnapshot.forEach(function (snapshot) { var val = snapshot.val(); console.log(val); // Should print your object }); }); 

树会增加深度吗? 如果没有,那么这里最好的解决方案就是做一个双循环。

 snapshot.forEach(function (snapshot) { var key = snapshot.key(); var obj = snapshot.val(); console.log(key); //output => Folder1 , Folder2 etc obj.forEach(function (book) { var title = book.title; var author = book.author; }); }); 

在我看来,不需要过度设计。

下面是如何将对象对象提供给对象数组的简单方法:

 var myObject = {key1: {name: 'hello'}, key2: {name: 'hello2'}}; var myArrayOfObject = Object.values(myObject); console.log(myArrayOfObject); // Result: (2) [Object, Object]