【问题标题】:JSON joining data in loop using JavaScript使用 JavaScript 在循环中加入 JSON 数据
【发布时间】:2018-04-21 02:29:57
【问题描述】:

我必须使用 JSON 数据在节点中的 sql 中进行左连接。实际上,在 componentWillReceiveProps 上做出反应(如果它正在改变任何东西)。

我的状态:

const dayList = {
  "2017-11-08": [],
  "2017-11-09": [],
  "2017-11-10": [],
  "2017-11-11": [],
  "2017-11-12": [],
  "2017-11-13": []
}

我要加入的数据:

const visit = {
  "2017-11-11": "10:30",
  "2017-11-12": "10:00",
  "2017-11-12": "10:30"
}

并且在 componentdidmount 中我需要设置状态,以便结果得到:

const dayList = {
  "2017-11-08": [],
  "2017-11-09": [],
  "2017-11-10": [],
  "2017-11-11": ["10:30"],
  "2017-11-12": ["10:00","10:30"],
  "2017-11-13": []
}

我知道如何使用 .map 来实现它,以及使用 if 语句来实现另一个循环。但我确信有更好的方法。 你有什么建议?

【问题讨论】:

  • 上面没有 JSON。 JSON 是一种用于数据交换的文本表示法(More here.) 如果您正在处理 JavaScript 源代码,而不是处理 string,那么您就不是在处理 JSON。
  • 您的 visit 初始化程序会生成一个只有 两个 属性的对象,而不是三个。 (名为"2017-11-12" 的第二个属性会覆盖第一个。)所以您要做的第一件事就是修复它。直到/除非您这样做,我们无法帮助您,因为起始数据结构无法执行您所描述的操作。
  • FWIW:Stack Overflow 是一个非常活跃的地方。当您发布问题(或答案)时,请停留几分钟,以便您处理上述澄清请求。截至我发布该消息时,这里有至少两个人积极地试图帮助你(可能更多)。一旦问题变得陈旧,就不太可能有帮助的人来查看它。

标签: javascript json reactjs object


【解决方案1】:

是的,实际上你是对的。我回答错了问题。也不是有效的 JSON。

不过,还是有事可做的。 我来自 db 的原始数据如下所示:

[
  {
    "createDate": "Tue Nov 07 2017 20:56:27 GMT+0100",
    "visitDate": "20171110",
    "visitTime": "1030",
    "doctor": {
      "name": "name1"
    }
  },
  {
    "createDate": "Tue Nov 07 2017 20:56:36 GMT+0100",
    "visitDate": "20171111",
    "visitTime": "1000",
    "doctor": {
      "name": "name1"
    }
  },
  {
    "createDate": "Tue Nov 07 2017 23:30:03 GMT+0100",
    "visitDate": "20171111",
    "visitTime": "1030",
    "doctor": {
      "name": "name1"
    }
  }
];

在反应组件中,需要将其显示为每天的访问列表

  "2017-11-08": [],
  "2017-11-09": [],
  "2017-11-10": ["10:30"],
  "2017-11-11": ["10:00","10:30"],
  "2017-11-12": []
  "2017-11-13": []

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 2016-01-25
    • 1970-01-01
    相关资源
    最近更新 更多