循环数据集合的最佳方法是什么。我面临的问题是性能低下。请参阅示例代码片段。以下两种方法存在性能问题。
interface Day {
date: number;
disabled: boolean;
}
// sample data
const monthDays: Day[] = Array.from({ length: 30 }, (v: unknown, k: number) => ({ date: k + 1, disabled: false }));
const disabledDates: number[] = Array.from({ length: 30 }, (v, k) => k + 1);
//set disabled dates
// method 1
let counter = 0;
for (let day of monthDays) {
day.disabled = disabledDates.some(d => d === day.date);
counter++;
}
console.log(counter) // logs 30
// method 2
counter = 0;
for (let day of monthDays) {
for (let date of disabledDates) {
counter++;
if (day.date === date) {
day.disabled = true;
break;
}
}
}
console.log(counter); // logs 494
在我工作的应用程序中,我需要对数组进行 3 到 4 次迭代。这会导致应用程序性能低下。任何人都可以建议什么是最好的循环方式。
慕桂英3389331
慕尼黑5688855
相关分类