コンテンツにスキップ

📄配列の遅延評価

TypeScript の配列操作は遅延評価されない。
filter()map() のたびに新しい配列が作られるので、大きい配列ではパフォーマンスの問題がある。

// 大きい配列
const array = [
{ active: true, value: 1 },
{ active: false, value: 2 },
/* ... */
{ active: true, value: 1000000 },
]
const result = array
.filter((x) => x.active)
.map((x) => x.value * 2)

values() でイテレータに変換することで遅延評価されてパフォーマンスが良くなる。

// 大きい配列
const array = [
{ active: true, value: 1 },
{ active: false, value: 2 },
/* ... */
{ active: true, value: 1000000 },
]
const result = array
.values()
.filter((x) => x.active)
.map((x) => x.value * 2)
.toArray()