ajax 调用返回一个 JSON 对象数组,其中包含日期、每个日期内的小时数以及每小时的计数。就像是:
jResult:
0: {DT: '02/28/2024', HR: '09', ERR_COUNT: 21}
1: {DT: '02/28/2024', HR: '10', ERR_COUNT: 4}
2: {DT: '02/28/2024', HR: '11', ERR_COUNT: 0}
....
14: {DT: '02/28/2024', HR: '23', ERR_COUNT: 25}
15: {DT: '02/29/2024', HR: '00', ERR_COUNT: 18}
16: {DT: '02/29/2024', HR: '01', ERR_COUNT: 11}
我需要按日期拆分它,在本例中,最终得到两个数组,每个数组一个。找到一篇文章,展示了如何按属性拆分对象数组:
function groupBy(arr, property) {
return arr.reduce(function (memo, x) {
if (!memo[x[property]]) { memo[x[property]] = []; }
memo[x[property]].push(x);
return memo;
}, {});
}
所以,当我使用:
var o = groupBy(jResult, 'DT')
我得到一个对象:
02/28/2024: (15) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
02/29/2024: (9) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
访问该对象时卡住。显然,o.02/28/2024 不起作用,o.["02/28/2024"] 也不起作用。
如何访问每个对象,或者也许是分割 jResul 的更好方法?
您需要不带点进行访问。而不是
o.["02/28/2024"]
使用这个:o["02/28/2024"]