无法从数组中访问对象值

问题描述 投票:1回答:3

{"-L0bFExUeZXB3-MUXCda":{"Comment":"GOOD","Date":"18 December","User":"OlaNord"}}

{"-L0bFCJh5SPUOWMjTRKu":{"Comment":"ok","Date":"18 December","User":"OlaNord"}}

{"-L0bFA2uzsGDizxxzN1p":{"Comment":"wewwe","Date":"18 December","User":"OlaNord"}}

我里面有一些objects阵列。我需要访问不同的values。当我尝试检索key名称时,我得到undefined

这是我的代码:

// Path for selected category
var categoryRef = firebase.database().ref("forum/" + currentCategory);

categoryRef.once("value", function(snapshot) {
    firebase.auth().onAuthStateChanged(user => {
        var key = user.uid;
        var postComments = [];

        for (var key in snapshot.val()) {
            var comments = snapshot.val()[key]['comments'];
            postComments.push(comments);
        }
    })
})

enter image description here

javascript arrays json
3个回答
1
投票

您可以尝试访问下面的注释,如果您发布的数组可以迭代如下:

var data = [{
        "-L0bFExUeZXB3-MUXCda": {
            "Comment": "GOOD",
            "Date": "18 December",
            "User": "OlaNord"
        }
    },

    {
        "-L0bFCJh5SPUOWMjTRKu": {
            "Comment": "ok",
            "Date": "18 December",
            "User": "OlaNord"
        }
    },

    {
        "-L0bFA2uzsGDizxxzN1p": {
            "Comment": "wewwe",
            "Date": "18 December",
            "User": "OlaNord"
        }
    }
]

var postComments = [];
for (var key of data) {
    for (var values in key) {
        console.log(key[values].Comment) //access the comment
        postComments.push(key[values].Comment);
    }
}

console.log(postComments);

0
投票

// Path for selected category
var categoryRef = firebase.database().ref("forum/" + currentCategory);

categoryRef.once("value", function(snapshot) {
    firebase.auth().onAuthStateChanged(user => {
        var key = user.uid;
        var postComments = [];

        for (var key in snapshot.val()) {
            var comments = snapshot.val()[key]['Comment'];
             //CHange key Name
            postComments.push(comments);
        }
    })
})

0
投票

您可以使用Object.values访问键内的值。

var data = [{"-L0bFExUeZXB3-MUXCda":{"Comment":"GOOD","Date":"18 December","User":"OlaNord"}},{"-L0bFCJh5SPUOWMjTRKu":{"Comment":"ok","Date":"18 December","User":"OlaNord"}},{"-L0bFA2uzsGDizxxzN1p":{"Comment":"wewwe","Date":"18 December","User":"OlaNord"}}];
var result = data.reduce((r,o) => r.concat(Object.values(o).map(({Comment}) => Comment)),[]);
console.log(result);
© www.soinside.com 2019 - 2024. All rights reserved.