-1

On my realtime firebase database I store my products with unique keys, i.e.,

- products
 |
  - KPYGghMerx_AKU8b4ki
   |
    - name: "product A"
    - price: 1.99
  - KPYNtki7UWnh5evYQgjT
   |
    - name: "product B"
    - price: 3.99

I retrieve this data as follows

this.productsRef.on('value', (snapshot) => {
  var data = snapshot.val();
}

This returns the object as expected, i.e.,

{
  KPYGghMerx_AKU8b4ki: {
                         name: "product A"
                         price: 1.99
                       },
  KPYNtki7UWnh5evYQgjT: {
                         name: "product B"
                         price: 3.99
                       }
 }

What's the easiest way to map these objects into an array without the unique keys? e.g.

{
  name: "product A"
  price: 1.99
},
{
  name: "product B"
  price: 3.99
}
James B
  • 8,975
  • 13
  • 45
  • 83

1 Answers1

0

Object.values will extract the values from an object and return it as an array:

Object.values({ k1: v1, k2: v2 }); //[v1, v2]

If you need to polyfill it you can write a simple values function:

function values(obj) {
  return Object.keys(obj).map(function (key) {
    return obj[key];
  });
}
zzzzBov
  • 174,988
  • 54
  • 320
  • 367