展平JavaScript对象

时间:2016-08-19 15:47:27

标签: javascript firebase

在我的实时firebase数据库中,我使用唯一键存储我的产品,即

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

我按如下方式检索此数据

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

按预期返回对象,即

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

在没有唯一键的情况下将这些对象映射到数组的最简单方法是什么? e.g。

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

1 个答案:

答案 0 :(得分:0)

Object.values将从对象中提取值并将其作为数组返回:

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

如果您需要填充它,您可以编写一个简单的values函数:

function values(obj) {
  return Object.keys(obj).map(function (key) {
    return obj[key];
  });
}