Melakukan operasi yang komplek terhadap sebuah array dapat menurunkan performa aplikasi. Mengapa? Hal ini terjadi karena setiap operasi akan menjalankan iterasi untuk memproses setiap elemen – elemen dalam array. Sebagai contoh:

var array = [1, 2, 3, 4, 5];
var square = array.map(function(e){ return e * e; });
var even = square.filter(function(e){ return e % 2 === 0; });
var total = even.reduce(function(a, b){ return a + b; }, 0);

Jika kita amati, setiap operasi (square, even, total) akan melakukan iterasi terhadap setiap elemen array. Apakah operasi – operasi tersebut bisa kita optimasi? Ya, kita bisa melakukan optimasi dengan hanya melakukan satu kali iterasi untuk mendapatkan hasil akhir total. Untuk itu, kita membutuhkan sebuah teknik yang disebut lazy evaluation.

Dalam teknik lazy evaluation, operasi – operasi diperlakukan sedemikian rupa sehingga predikat (fungsi) dalam setiap operasi hanya dijalankan pada saat dibutuhkan.

Advertisements