Javscript

JavaScript’te bir aralıkta nasıl yinelenirsiniz?

Rust veya Python gibi programlama dilleri, aralıklar için yerleşik desteğe sahiptir. JavaScript’te, bir üreteç işlevi yardımıyla benzer kalıpları kullanabiliriz.

JavaScript’te bir aralık üzerinde yineleme yapmak için, istenen aralık için adım başına bir değer veren bir oluşturucu işlevi oluşturulabilir:

function* range(from, to, step = 1) {
  let value = from;
  while (value <= to) {
    yield value;
    value += step;
  }
}

1’den 3’e kadar yineleyin:

for (const value of range(1, 3)) {
  console.log(value);
}


2 adımlık artışlarla 0’dan 4’e yineleyin:

for (const value of range(0, 4, 2)) {
  console.log(value);
}


O nasıl çalışır?

Üreteç işlevleri, sıradan işlevler olarak bildirilen, ancak işlevden sonra fazladan * bulunan, belleğe sahip işlevlerdir. function anahtar kelime:

function* name(arg1, arg2) {
  yield 123;
}

Bir jeneratör işlevi çalıştırmak, bir Generator ile nesne .next() yöntem. bu .next() yöntem, jeneratörü bir sonrakine kadar çalıştıracak yield ifade, bu noktada bir nesneye sarılmış bir sonraki değeri döndürür.

bu yield ifadesi yerine kullanılır return üreteç işlevlerinde değerleri döndürmek için. Elde edilen değer, yapıya sahip bir nesnedir:

{
  value: 123,
  done: false
}

Koşma .next() son verim ifadesine ulaşan bir jeneratörde bunun yerine şunu döndürür:

{
  value: undefined,
  done: true
}

Buradaki en güzel şey, döngülerin jeneratörleri kutunun dışında yineleyiciler olarak kullanabilmesidir. Bu, çok az çabayla her türlü özel yineleyiciyi oluşturmayı kolaylaştırır.

Bununla ne yaratacaksınız? Hadi gidip jeneratörleri tekrarlayalım!

İlgili Makaleler

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Başa dön tuşu