如何获取对象键内的数据

时间:2017-10-23 18:46:59

标签: javascript firebase-realtime-database vue.js vuefire

firebase db

我尝试使用以下方法从用户ID(-m3Jh ...)的交易中检索数据。

computed: {
    getData() {
        let db = ref.child('transactions/m3JhsTazwgX9AXeYKxYdisSXDob2')
        .on('value', snapshot => {
            snapshot.forEach(s => {
                var arr = s.val()
                console.log(arr)
                console.log(arr[0].title)
            })
        })
    }
}

在控制台中,这会产生每个键的对象数组。

enter image description here

当我尝试console.log arr [0]时,我只想检索每个键内的所有数据(-kx ...)这个结果是每个键内的所有0对象,这不是我想要的。我只想检索特定密钥内的所有数据,或者像-Kx8h-vJsVtPRekuU8jt中的最新密钥,这将导致0,1,2,3内的所有数据。我想要实现的只是一个简单的账单,显示用户订购的所有信息。使用vuefire更容易吗?

1 个答案:

答案 0 :(得分:0)

您可以使用map将对象映射到值数组。简单的例子。第二个保留新数组中的键。

const person = {eyes: {color : 'blue', count: 2},
               feet: { size: 'medium', count: 2},
               hands: { size: 'big', count: 1}};

let oldPerson = Object.keys(person).map(key => person[key]);

let newPerson = Object.assign(...Object.keys(person).map(k => ({[k]: person[k]})));

const person = {eyes: {color : 'blue', count: 2},
               feet: { size: 'medium', count: 2},
               hands: { size: 'big', count: 1}};

let oldPerson = Object.keys(person).map(key => person[key]);

let newPerson = Object.assign(...Object.keys(person).map(k => ({[k]: person[k]})));

console.log(oldPerson);
console.log(newPerson);