【问题标题】:Read data from Json and store in variable javascript [closed]从 Json 读取数据并存储在变量 javascript [关闭]
【发布时间】:2021-10-01 18:45:12
【问题描述】:

我收到一个 JSON 格式的 api 请求响应,我将它存储在一个带有 json 数据的变量中

const users=    {
    'ABC': {
        id: '123',
        name:'testname',
    },
    'DEF': {
        id = '222',
        name='testname2'
    }
}

我正在尝试读取用户下的每个数据并存储在不同的变量中。一个变量可以说名称 firstVar 将在“ABC”下包含所有日期,而 secondVar 将在“DEF”下包含所有数据,然后我可以将其用于进一步测试。我不知道如何实现它。任何帮助都将不胜感激。

【问题讨论】:

  • 它可能应该是 users.find(item => item.id === "123") 之类的东西,而不是你所拥有的
  • 我已经试过了,它一直给我错误,未定义

标签: javascript mocha.js


【解决方案1】:

如果您想获取每个对象的 ID 并存储它们,您可以通过 map 覆盖 Object.values 并返回一个 ID 数组。

const users = {
  'ABC': {
      id: '123'
  },
  'DEF': {
      id: '222'
  }
};

const ids = Object.values(users).map(el => {
  return el.id;
});

console.log(ids);

【讨论】:

    【解决方案2】:

    不确定这是否是您想要的,您的代码已被切断。 Array.prototype.find 函数仅适用于 Array。

    const users = {
        'ABC': {
            id: '123'
        },
        'DEF': {
            id: '222'
        }
    };
    
    const foundId = Object.keys(users).find(username => users[username].id === '123');
    
    users[foundId] // found user.
    

    【讨论】:

    • 你的代码返回ABC。 OP 希望从每个对象的 id 属性中获取值。
    • 我明白你的意思,但这可以通过跳过将 id 存储到数组的额外步骤来节省 OP 时间,除非这是相关的。
    • 是的,这有点令人困惑。问题的文本表明 OP 需要 ids,但 OP 对代码的尝试表明并非如此。也许他们并没有真正理解find 的工作原理。我的回答解决了“获取所有 ID”的问题,但最终,我可能是错的 :)
    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多