如何提高for循环的速度



我使用Datatables和Highcharts作为报告屏幕,但加载图表的速度很慢(大约10秒(,使用performance.now()我可以看到下面的片段导致了延迟:

请注意,"索引"数组包含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);
}
}

所以,我想知道是否有更有效的方法来实现这一点?

干杯,Chris

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

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);
}
}

最新更新