繁体   English   中英

迭代嵌套的firebase对象 - Javascript

[英]Iterating through nested firebase objects - 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]

暂无
暂无

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

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