JavaScript Dizi Fonksiyonları
Dizi oluşturma ve dizilerde kullanılan bazı metodları Dizi Oluşturma isimli makalede belirtmiştim. Bu makalede diziler üzerinde işlem yapan metodların nasıl kullanıldıkları örneklerle açıklanmıştır.
concat() Çağrıldığı dizi ile metodaa gönderilen dizi yada değerleri ekleyip geriye dizi döndürür.
every() Dizideki tüm elemenları verilen fonksiyon ile test eder.
Geri dönüş değeri false bulana kadar tüm elemanları sırayla kontrol eder. Dönen tüm değerler true ise sonuç true döndürür.
filter() Kendisine gönderilen fonksiyondan geçen tüm elemanlardan yeni bir dizi oluşturur.
forEach() Dizinin her elemanı için belirtilen fonksiyonu çalıştırır.
indexOf() Kendisine gönderilen parametre ile dizide aramayapıp bulduğu ilk indexi döndürür. eğer dizide yoksa aranan değer -1 değerini çevirir.
join() Dizideki tüm değerleri belirtilen yapıştırıyıcıya göre birleştirir.
lastIndexOf() Belirtilen elemanın dizinin sonunda olup olmadığını kontrol eder. Dizinin sonunda bulamazsa -1 değerini döndürür.
map() Dizi içindeki tüm elemanları belirtilen fonksiyondan geçirip yeni bir dizi oluşturur.
pop() Dizideki son değeri diziden atar.
push() Belirtilen elemanları dizinin sonuna ekler.
reverse() Diziyi ters çevirir.
shift() Dizinin başındaki ilk elemanı çeker.
sort() Diziyi sıralar.
some() BAZI elemanların belirtilen fonksiyon ile testi geçip geçmediğini kontrol eder.
unshift() Dizinin başına değer ekler.
toString() Diziyi metinsel(string) ifadeye çevirir.
JavaScript Dizi Metod Örnekleri
concat()
//concat metodun çağrıldığı dizi ile metodaa gönderilen dizi yada değerleri ekleyip geriye dizi döndürür.
// var yenidizi = eskidizi.concat(deger1[, deger2[, ...[, degerN]]])
var mevveler = ["Elma", "Muz"];
var sebzeler = ["Brokoli", "Lahana"];
var bitkiler=[];
bitkiler= sebzeler.concat(mevveler);
document.write(bitkiler); //ekran çıktısı: Brokoli,Lahana,Elma,Muz
every()
// every dizideki tüm elemenları verilen fonksiyon ile test eder.
//Geri dönüş değeri false bulana kadar tüm elemanları sırayla kontrol eder. Dönen tüm değerler true ise sonuç true döndürür.
function yasBuyukMu(eleman, index, dizi) {
return eleman >= 18;
}
var durum1= [20, 5, 8, 130, 44].every(yasBuyukMu); // false
var durum2= [18, 54, 18, 130, 44].every(yasBuyukMu); // true
// every dizideki tüm elemenları verilen fonksiyon ile test eder.
//Geri dönüş değeri false bulana kadar tüm elemanları sırayla kontrol eder. Dönen tüm değerler true ise sonuç true döndürür.
function sayiKontrol(eleman, index, dizi) {
//Bilgi: NaN ->numaraya çevrilemezse üretilen bir değerdir. '1' -> 1 olurken 'a' - > sayı olmaz NaN olur.
if(isNaN(eleman))
return false;
else
return true;
}
var durum1= [5,"aaa",7,3].every(sayiKontrol); // false
var durum2= [18, 54, 18,152].every(sayiKontrol); // true
console.log(durum1);
console.log(durum2);
filter()
//filter metodu kendisine gönderilen fonksiyondan geçen tüm elemanlardan yeni bir dizi oluşturur.
function buyukSayilar(deger) {
return deger >= 25;
}
var yeni_dizi = [12, 5, 8, 130, 44].filter(buyukSayilar);
// yeni_dizi degeri: [130, 44]
document.write(yeni_dizi);
forEach()
// forEach() metodu, dizinin her elemanı için belirtilen fonksiyonu çalıştırır.
function ornekFonk(deger) {
//dizinin her elemanını 5 ile çarpıp h3 etiketleri arasında ekrana yazar.
document.write("
"+deger*5+"
");}
[34,11,02,4].filter(ornekFonk);
indexOf()
//indexOf() metodu kendisine gönderilen parametre ile dizide aramayapıp bulduğu ilk indexi döndürür. eğer dizide yoksa aranan değer -1 değerini çevirir.
var dizi = [2, 9, 9];
dizi.indexOf(2); // 0
dizi.indexOf(7); // -1
dizi.indexOf(9, 2); // 2
dizi.indexOf(2, -1); // -1
dizi.indexOf(2, -3); // 0
join()
//join() methodu dizideki tüm değerleri belirtilen yapıştırıyıcıya göre birleştirir.
var mevveler = ["Elma", "Muz","Üzüm","Portakal"];
var dizi1 = meyveler.join(","); //Elma,Muz,Üzüm,Portakal
var dizi2 =meyveler.join("+"); //Elma+Muz+Üzüm+Portakal
lastIndexOf()
//lastIndexOf() methodu belirtilen elemanın dizinin sonunda olup olmadığını kontrol eder. Dizinin sonunda bulamazsa -1 değerini döndürür.
// aranan değerin dışında isteğe bağlı ikinci bir değer daha verilebilir. Pozitif ise dizinin başından kaç değer içinde aranacağı,
//negatif ise dizinin sonunda kaç değerin aramadan çıkarılacağını ifade eder. Unutmayın aramaya eklenmese de dizinin başından aranacaktır.
//değer bulmazsa -1 değerini döndürecektir.
var dizi = [2, 5, 9, 2];
dizi.lastIndexOf(2); // 3
dizi.lastIndexOf(7); // -1
dizi.lastIndexOf(9, 1); // -1
dizi.lastIndexOf(9, 2); // 2
dizi.lastIndexOf(9, -3); // -1
dizi.lastIndexOf(9, -1); // 2
map()
//map() methodu dizi içindeki tüm elemanları belirtilen fonksiyondan geçirip yeni bir dizi oluşturur.
var sayilar = [1, 4, 9];
var kok = sayilar.map(Math.sqrt);
// kok artık [1, 2, 3], sayılar dizisi hala [1, 4, 9]
var nesneDizi = [{key:1, value:10}, {key:2, value:20}, {key:3, value: 30}];
var yeniDizi = kvArray.map(function(gelen){
var yDizi = {};
yDizi[gelen.key] = gelen.value;
return yeniDizi;
});
// yeniDizinin : [{1:10}, {2:20}, {3:30}],
// nesneDizi'si hala [{key:1, value:10}, {key:2, value:20}, {key:3, value: 30}]
pop()
//pop() methodu dizideki son değeri diziden atar.
var mevveler = ["Elma", "Muz","Üzüm","Portakal"];
var son_meyve=mevveler.pop();
//meyveler yeni hali ["Elma", "Muz", "Üzüm"]
//son_meyve : "Portakal"
push()
// push() methodu belirtilen elemanları dizinin sonuna ekler.
var mevveler = ["Elma", "Muz"];
meyveler.push("Üzüm","Portakal");
//meyveler yeni hali : ["Elma", "Muz","Üzüm","Portakal"];
reverse()
//reverse() methodu diziyi ters çevirir.
var mevveler = ["Elma", "Muz","Üzüm","Portakal"];
meyveler.reverse();
//meyveler yeni hali: ["Portakal","Üzüm","Muz","Elma"]
shift()
//shift() methodu dizinin başındaki ilk elemanı çeker.
var mevveler = ["Elma", "Muz","Üzüm","Portakal"];
var ilk_eleman=meyveler.shift();
//meyveler yeni hali [ "Muz","Üzüm","Portakal"]
//ilk_elaman : "Elma"
sort()
//sort() methodu diziyi sıralar.
var mevveler = ["Elma", "Muz","Ayva","Portakal"];
mevveler.sort();
//meyveler yeni hali ["Ayva", "Elma", "Muz", "Portakal"]
some()
//some() methodu BAZI elemanların belirtilen fonksiyon ile testi geçip geçmediğini kontrol eder.
function karakterKontrol1(elaman, index, dizi){
//5 kareterden büyük olan var mı kontrolü yapıyor. varsa true
return eleman.length>5;
}
function karakterKontrol2(elaman, index, dizi){
//10 kareterden büyük olan var mı kontrolü yapıyor. varsa true
return eleman.length>10;
}
var mevveler = ["Elma", "Muz","Ayva","Portakal"];
meyveler.some(karakterKontrol1); //true portakal 5 karakterden büyük olduğu için true dönecektir.
meyveler.some(karakterKontrol2); //false 10 karakterden büyük değer olmadığı için sonuç false dönecektir.
unshift()
//unshift() methodu dizinin başına değer ekler.
var mevveler = ["Elma", "Muz","Üzüm","Portakal"];
meyveler.unshift("Ayva");
//meyveler dizisinin yeni hali :["Ayva","Elma", "Muz","Üzüm","Portakal"]
toString()
//toString() metodu diziyi metinsel(string) ifadeye çevirir.
var mevveler = ["Elma", "Muz","Ayva","Portakal"];
var yazi=meyveler.toString();
//yazi değişkeni : Elma, Muz,Ayva,Portakal