JavaScript String Metodları: indexOf() & lastIndexOf()
indexOf() Metodu
indexOf: belirtilen başlangıç index değerinden sonra, istenilen ifadenin olup olmadığını sorgular. İfade varsa: bulunduğu ilk index değerini, yoksa -1 değerini döner. Başlangıç index değeri varsayılan olarak sıfırdır.
let veri = "Javascript programlama dilini öğreniyorum."
veri.indexOf("i",10) // 24
veri.indexOf("i",30) // 35
veri.indexOf("i",36) // -1
lastIndexOf() Metodu
lastIndexOf: belirtilen başlangıç index değerinden önce, istenilen ifadenin olup olmadığını sorgular. İfade varsa: bulunduğu son index değerini, yoksa -1 değerini döner. Başlangıç index değeri string ifadenin uzunluğuna eşittir.
veri.lastIndexOf("a",30) // 21
veri.lastIndexOf("ö",35) // 30
veri.lastIndexOf("ö",25) // -1
Bir önceki konuda, search metodu için yazdığımız fonksiyonu: indexOf ve lastIndexOf metodlarına uyarlayalım. Ödev -> Kodu inceledikten sonra, koda bakmadan kendiniz tekrar yazmaya çalışın. indexOf ve lastIndexOf metodlarıyla aynı sonuçları verdiğini kontrol edin.
// indexOf Metodu
function iO(veri, ifade, baslangic=0) {
for (let i = baslangic; i <= veri.length - ifade.length; i++) {
if (veri.slice(i, i + ifade.length) == ifade) {
return i
}
}
return -1
}
iO(veri,"i",10) // 24
iO(veri,"i",30) // 35
iO(veri,"i",36) // -1
// lastIndexOf Metodu
function liO(veri, ifade, bitis=veri.length) {
for (let i = bitis; i > 0; i--) {
if (veri.slice(i - ifade.length, i) == ifade) {
return i - ifade.length
}
}
return -1
}
liO(veri,"a",30) // 21
liO(veri,"ö",35) // 30
liO(veri,"ö",25) // -1