【问题标题】:Flatten JavaScript Object [duplicate]展平 JavaScript 对象 [重复]
【发布时间】:2016-12-26 20:32:25
【问题描述】:

在我的实时 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
                       }
 }

将这些对象映射到没有唯一键的数组中的最简单方法是什么?例如

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

【问题讨论】:

  • Object.values({...data...}).
  • Object.keys(object).map(k=>object[k)

标签: javascript firebase


【解决方案1】:

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

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

如果你需要 polyfill,你可以写一个简单的values 函数:

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

【讨论】:

    猜你喜欢
    • 2018-02-24
    • 2015-05-23
    • 2020-12-22
    • 2018-04-27
    • 2016-06-27
    • 2023-01-11
    • 1970-01-01
    • 2020-06-23
    • 2016-06-20
    相关资源
    最近更新 更多