Javascript中带有日期键的动态多维数组

PHP先生

如何通过键和子数组循环新创建的动态数组。

var days = new Array();
$.each(json_object, function(r, row) {

    var online_date = new Date(row.date_field * 1000);
    var day_key = '' + online_date.getFullYear() + '' + (online_date.getMonth()+1) + '' + online_date.getDate() + '';

    if(!days[day_key]) {
        days[day_key] = [];
    }

    days[day_key][r] = row;

});

console.log('days.length');
console.log(Object.keys(days).length);
// 3 days woth of data.. 
// 20, 30 records each day... 

for(var d = 0; d < Object.keys(days).length; d++) {
    var day = days[d];

    // day is undefined
    console.log(day);

    // I want KEY for 'day_key' and the data rows...

}

我正在使用 jQuery 或基本的 JS。如果我对数组进行过滤或排序,我会丢失我的密钥,因为我想每天绘制图表。

谢谢。

米克尔

您应该声明days为对象,而不是数组:

var days = {};
$.each(json_object, function(r, row) {

    var online_date = new Date(row.date_field * 1000);
    var day_key = '' + online_date.getFullYear() + '' + (online_date.getMonth()+1) + '' + online_date.getDate() + '';

    if(!days[day_key]) {
        days[day_key] = []; // Define an array for the rows to go into
    }

    days[day_key].push(row); // Add the row to the array

});

console.log('days.length');
console.log(Object.keys(days).length);
// 3 days worth of data.. 
// 20, 30 records each day... 

Object.keys(days).forEach(day => {
    console.log(day);

    // I want KEY for 'day_key' and the data rows...
    // The array of rows for the day are available
    console.log(`Rows for ${day}: `,days[day])

})

我认为这会做你想做的

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章