【问题标题】:How to iterate through an object with key and get the value如何使用键遍历对象并获取值
【发布时间】:2021-12-28 01:52:12
【问题描述】:

所以我不知道为什么我在这方面遇到这么困难,但我有一个对象我正试图映射它以从中获取值。

例如:

let obj = {
      "lyzjmpkvbtocygakcoxu": {
        "label": "Show Time",
        "hour": "12",
        "minute": "00",
        "period": "p.m.",
        "add_time": "enabled",
        "bdlmynfythqgyzrhruhw_add_date": "December 01, 2021",
        "bdlmynfythqgyzrhruhw_stock": ""
      },
      "eueuuzvkteliefbnwlii": {
        "label": "Show Time",
        "hour": "05",
        "minute": "00",
        "period": "p.m.",
        "add_time": "enabled",
        "brtmypzvuooqhvqugjbj_add_date": "December 02, 2021",
        "brtmypzvuooqhvqugjbj_stock": ""
      }
    }

我希望能够得到这个:

December 01, 2021, December 02, 2021

我能够这样做来获取“add_time”的值和键,但是我想要的是包含“..._add_date”的键的值。

Object.keys(obj).reduce(
          (acc, elem) => {
            acc[elem] = obj[elem].add_time;
            return acc;
          },
          {},
        );

【问题讨论】:

    标签: javascript object


    【解决方案1】:

    我想你可以搜索键和 .find 匹配模式的那个...

    let obj = {
          "lyzjmpkvbtocygakcoxu": {
            "label": "Show Time",
            "hour": "12",
            "minute": "00",
            "period": "p.m.",
            "add_time": "enabled",
            "bdlmynfythqgyzrhruhw_add_date": "December 01, 2021",
            "bdlmynfythqgyzrhruhw_stock": ""
          },
          "eueuuzvkteliefbnwlii": {
            "label": "Show Time",
            "hour": "05",
            "minute": "00",
            "period": "p.m.",
            "add_time": "enabled",
            "brtmypzvuooqhvqugjbj_add_date": "December 02, 2021",
            "brtmypzvuooqhvqugjbj_stock": ""
          }
        }
    const result = Object.values(obj)
      .map(val =>
        Object.entries(val)
          .find(([key]) => key.endsWith('_add_date'))
          [1]
      )
      .join(', ');
    console.log(result);

    但更好的方法是修复上游代码,这样一开始就不会创建如此奇怪的结构。

    【讨论】:

    • 非常感谢,这正是我想要的 ?。我知道对象的结构可以更好,但不幸的是,这是来自 JSON 响应的结构
    猜你喜欢
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多