如何提高for循环的速度

时间:2021-07-04 22:39:52

标签: javascript for-loop

我将 Datatables 和 Highcharts 用于报告屏幕,但加载图表很慢(大约 10 秒),使用 performance.now() 我可以看到下面的部分导致延迟:

请注意,'indexes' 数组包含 6500 多条记录。

var monthTO = {};
var indexes = TurnoverRepoTable.rows({ search: 'applied' }).indexes().toArray();
for (var i = 0; i < indexes.length; i++) {
    var cMonth = TurnoverRepoTable.cell(indexes[i], 2).data();
    var value = TurnoverRepoTable.cell(indexes[i], 6).data();
    if (monthTO[cMonth] === undefined) {
        monthTO[cMonth] = Number(value);
    } else {
        monthTO[cMonth] = monthTO[cMonth] + Number(value);
    }
}

那么,我想知道是否有更有效的方法来实现这一目标?

干杯,克里斯

1 个答案:

答案 0 :(得分:0)

嗨, 我通过直接引用数据(而不是使用索引)解决了这个问题,代码如下:

var dataset = TurnoverRepoTable.rows({ search: 'applied' }).data().toArray();

// For each row, extract the office and add the salary to the array
for (var i = 0; i < dataset.length; i++) {
    var cMonth = dataset[i].job.cMonth
    var value = dataset[i].job.estout
    if (monthTO[cMonth] === undefined) {
        monthTO[cMonth] = Number(value);
    } else {
        monthTO[cMonth] = monthTO[cMonth] + Number(value);
    }
}
相关问题