【问题标题】:How to bucket JSON data for a range?如何存储范围的 JSON 数据?
【发布时间】:2022-10-14 23:42:41
【问题描述】:

我是编程新手,非常感谢这里的任何帮助和耐心。 :)

我们有一些数据正在尝试按桶(在这种情况下是一个月中的几天)进行排序,以创建较小的数据集,如下所示:

export const Weather = [
  {
    city: "STL",
    month: "july",
    daysbucket: "1 to 10",
    percentages: {
      sunny: "45.5",
      rainy: "20.5",
      cloudy: "10.8",
      partlycloudy: "23.2",
    },
  },

有没有比使用daysbucket: "1 to 10" 之类的字符串更好的方法?

这个想法是使用概率函数运行一些预测模拟,该函数可以提取某一天过去天气的百分比,而不必列出该月每一天的这些百分比。到目前为止,我计划获取月份中的某一天,然后执行一些 if 语句将其插入 1-10、11-20 等的字符串中,但想在我走得太远之前看看是否有更好的方法。我有几个数据集,其中包含存储为字符串的各种存储桶,但我也可以控制数据,因此可以根据需要进行更改。所有数据都存储在 MongoDB 中。 提前致谢!!!

【问题讨论】:

    标签: javascript json


    【解决方案1】:

    为了能够与daysbucket 进行计算和比较,最好这样定义:

    export const Weather = [
      {
        city: "STL",
        month: "july",
        daysbucket: {
          from: 1,
          to: 10 
        },
        percentages: {
          sunny: "45.5",
          rainy: "20.5",
          cloudy: "10.8",
          partlycloudy: "23.2",
        },
      },
    

    有了这个结构,你可以像这样比较它:

    if (day > daysbucket.from && day < days bucket.to) { ... }
    

    依此类推,请注意,为了比较数字,值应定义为数字,而不是字符串,或者如果是字符串,您需要将它们转换为数字(使用 parseInt()Number()

    【讨论】:

    • 哇感谢您的快速回答!看起来像我需要的。很高兴我问,因为我确定我在这期间错了。 :)
    【解决方案2】:

    我会使用一个对象来做到这一点。就像是 :

    daysbucket: {
    min:1,
    max: 10
    }
    

    【讨论】:

    • 感谢你及时的答复!
    猜你喜欢
    • 1970-01-01
    • 2013-09-27
    • 2015-11-08
    • 2016-06-10
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    • 2016-10-15
    • 2023-03-19
    相关资源
    最近更新 更多