【问题标题】:pivot or maybe grouping with js枢轴或可能与js分组
【发布时间】:2016-02-02 18:48:11
【问题描述】:

原始日期结构:

    [
        {
            "DateTimeUtc": "2016-02-02T12:00:00",
            "TMP": -0.4,
            "DPT": -2.6,
            "HUMIDEX": -3.16231537,

        },
        {
            "DateTimeUtc": "2016-02-02T13:00:00",
            "TMP": -0.2,
            "DPT": -2.8,
            "HUMIDEX": -3.00339675,
        },
         {
            "DateTimeUtc": "2016-02-02T14:00:00",
            "TMP": -0.3,
            "DPT": -2.7,
            "HUMIDEX": -13.00339675,
        },
.
.
.
    ]

预期结果:

     [
                   {
                "Hour": "DPT",
                "Feb  2 2016  5:00AM": -11,
                "Feb  2 2016  6:00AM": -11,
                "Feb  2 2016  7:00AM": -11,
                "Feb  2 2016  8:00AM": -11,
                "Feb  2 2016  9:00AM": -10,
                "Feb  2 2016 10:00AM": -12,
                "Feb  2 2016 11:00AM": -14,
                "Feb  2 2016 12:00PM": -13,
                "Feb  2 2016  1:00PM": -12,
                "Feb  2 2016  2:00PM": -12,
                "Feb  2 2016  3:00PM": -12,
                "Feb  2 2016  4:00PM": -12,
                "Feb  2 2016  5:00PM": -11,
                "Feb  2 2016  6:00PM": -11,
                "Feb  2 2016  7:00PM": -10,
                "Feb  2 2016  8:00PM": -11,
                "Feb  2 2016  9:00PM": -10,
                "Feb  2 2016 10:00PM": -10,
                "Feb  2 2016 11:00PM": -10,
                "Feb  3 2016 12:00AM": -10,
                "Feb  3 2016  1:00AM": -10,
                "Feb  3 2016  2:00AM": -10,
                "Feb  3 2016  3:00AM": -10,
                "Feb  3 2016  4:00AM": -10
            },
            {
                "Hour": "Humidex",
                "Feb  2 2016  5:00AM": -13,
                "Feb  2 2016  6:00AM": -13,
                "Feb  2 2016  7:00AM": -13,
                "Feb  2 2016  8:00AM": -12,
                "Feb  2 2016  9:00AM": -13,
                "Feb  2 2016 10:00AM": -15,
                "Feb  2 2016 11:00AM": -17,
                "Feb  2 2016 12:00PM": -15,
                "Feb  2 2016  1:00PM": -14,
                "Feb  2 2016  2:00PM": -14,
                "Feb  2 2016  3:00PM": -13,
                "Feb  2 2016  4:00PM": -11,
                "Feb  2 2016  5:00PM": -10,
                "Feb  2 2016  6:00PM": -10,
                "Feb  2 2016  7:00PM": -9,
                "Feb  2 2016  8:00PM": -10,
                "Feb  2 2016  9:00PM": -9,
                "Feb  2 2016 10:00PM": -10,
                "Feb  2 2016 11:00PM": -11,
                "Feb  3 2016 12:00AM": -11,
                "Feb  3 2016  1:00AM": -12,
                "Feb  3 2016  2:00AM": -12,
                "Feb  3 2016  3:00AM": -13,
                "Feb  3 2016  4:00AM": -13
            },
.
.
.
        ]

【问题讨论】:

标签: javascript jquery lodash


【解决方案1】:

我希望这是你想要的。

function getDate(date) {
    var month = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oc', 'Nov', 'Dec'][date.getMonth()],
        day = date.getDay(),
        year = date.getFullYear(),
        hours = date.getHours(),
        minutes = date.getMinutes(),
        ampm = hours >= 12 ? 'PM' : 'AM';

    day = day < 10 ? ' ' + day : day;
    hours = hours % 12;
    hours = hours ? hours : 12; // the hour '0' should be '12'
    hours = hours < 10 ? ' ' + hours : hours;
    minutes = minutes < 10 ? '0' + minutes : minutes;
    return month + ' ' + day + ' ' + year + ' ' + hours + ':' + minutes + ampm;
}

var data = [{ "DateTimeUtc": "2016-02-02T12:00:00", "TMP": -0.4, "DPT": -2.6, "HUMIDEX": -3.16231537 }, { "DateTimeUtc": "2016-02-02T13:00:00", "TMP": -0.2, "DPT": -2.8, "HUMIDEX": -3.00339675 }, { "DateTimeUtc": "2016-02-02T14:00:00", "TMP": -0.3, "DPT": -2.7, "HUMIDEX": -13.00339675 }],
    cols = ['DPT', 'HUMIDEX'],
    pivot = data.reduce(function (r, a) {
        cols.forEach(function (k, i) {
            r[i] = r[i] || { Hour: k };
            r[i][getDate(new Date(a.DateTimeUtc))] = a[k];
        });
        return r;
    }, []);

document.write('<pre>' + JSON.stringify(pivot, 0, 4) + '</pre>');

【讨论】:

  • 我用传入 js 的数据格式更新问题。我想根据 datetimeutc 属性对它们进行旋转。
  • 我附上了一张图片。我正在寻找不同的东西。请参阅附件。
  • 请使用JSON.stringify(data, 0, 4) 呈现您的数据并将其插入问题中。图片不清楚你想要什么。
  • 做。请检查问题,
  • 完成。清理问题并添加原始数据结构。感谢您调查这个尼娜。
猜你喜欢
  • 2021-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多