JavaScript Dizileri: Birleştirme ve Bölme İşlemleri

JavaScript Dizileri: Birleştirme ve Bölme İşlemleri

JavaScript dizileri kullanarak verilerinizi düzgün bir şekilde birleştirmek ve bölmek mi istiyorsunuz? Bu yazımızda JavaScript dizilerinin nasıl birleştirileceği ve böleceğiyle ilgili her şeyi öğreneceksiniz!

JavaScript Dizileri: Birleştirme ve Bölme İşlemleri

JavaScript, web geliştiricilerinin en sık kullandığı programlama dillerinden biridir. Ayrıca, web sayfalarındaki dinamik etkileşimleri bir araya getirmek için kullanılan bir kültürdür. Bu dilin en kullanışlı özelliklerinden biri de dizilerdir. Diziler, işlevler, nesneler veya başka bir dizinin elemanları gibi birçok farklı veri türünden oluşabilirler.

Bu makalede, JavaScript'te dizilerin birleştirilmesi ve bölünmesi işlemleri hakkında bilgi vereceğiz. İki veya daha fazla dizi nasıl birleştirilir, bir dizinin nasıl bölünebileceği ve parçalara nasıl ayrılabileceği gibi konuları ele alacağız. Ayrıca, dizilerin yığıt ve kuyruk yapısına nasıl dönüştürülebileceği konusunda da bilgi vereceğiz.


Dizilerin Birleştirilmesi

JavaScript'te, iki veya daha fazla dizi nasıl birleştirilir? Dizilerin birleştirilmesi için concat() yöntemi kullanılabilir. Bu yöntem ile istenilen diziler bir araya getirilir ve yeni bir dizi oluşturulur. Örneğin;

Dizi 1 Dizi 2 Birleştirilmiş Dizi
[1, 2, 3] [4, 5, 6] [1, 2, 3, 4, 5, 6]
['a', 'b', 'c'] ['d', 'e', 'f'] ['a', 'b', 'c', 'd', 'e', 'f']

Birleştirme işlemi sırasında, dizilerin öğeleri sırayla yeni bir diziye eklenir. Bir dizinin sonuna başka bir dizi eklemek için concat() yöntemi kullanılabilir. Ancak iki diziyi birleştirmek için tek başına kullanılabilir.


Dizilerin Bölünmesi

JavaScript'te dizilerin bölünmesi işlemi, bazen özellikle büyük dizilerin üzerinde işlem yapmak istediğimizde oldukça kullanışlı hale gelebilir. Bu işlem, bir dizinin parçalara ayrılması ve bu parçalara ayrı ayrı işlemler yapılması anlamına gelir.

Bunun için JavaScript'te iki farklı yöntem kullanılır; slice() ve splice(). slice() yöntemi, dizinin belirli bir bölümünü başka bir diziye kopyalarken splice() yöntemi ise orijinal diziyi değiştirir ve yeni öğeler ekleme veya mevcut öğeleri silme işlemi yaparak parçalara ayırır.

slice() yöntemi kullanarak bir dizinin belirli bir kısmını parçalara ayırmak için başlangıç ve bitiş indisleri belirtilmelidir. Belirtilen başlangıç indisinden itibaren, belirtilen bitiş indisi kadar olan kısım yeni bir dizi olarak oluşturulur. Kendi içinde de birden fazla parçaya ayrılabilir.

  • Başlangıç indisi, parçalanacak dizinin hangi indisinden başlanacağını belirtir.
  • Bitiş indisi, parçalanacak dizinin hangi indisine kadar alınacağını belirtir. Bitiş indisi dahil değildir.

Slice() yöntemi ayrıca, dizinin sondan belirli bir kısmını da parçalara ayırmak için kullanılabilir. Bunun için başlangıç indisinin negatif sayı olarak belirtilmesi gerekir.

Bölme işlemi için kullanılan splice() yöntemi, aynı zamanda, yeni öğeler eklemek veya mevcut öğeleri silmek için de kullanılabilir. Bu yöntem, başlangıç indisi ve silinecek öğe sayısı belirtilerek çalışır.

  • Başlangıç indisi, hangi öğeden itibaren silinerek parçalanacağını belirtir.
  • Silinecek öğe sayısı, kaç öğenin silineceğini belirtir.
  • Eklenecek öğeler mevcutsa, başlangıç indisi ve sıfırdan büyük bir sayı belirtilerek bu öğeler eklenebilir.

Dizilerin bölünmesi işlemi, büyük veri setleri üzerinde işlem yapmak istediğimizde oldukça kullanışlı hale gelir. Bölünme işlemi sırasında, belirli bir işlem yapmamız gereken parçaları seçerek o parçalara özgü işlemler yapmamız mümkündür.


Slice Metodu

JavaScript'te, bir dizinin bölünmesi işlemi için slice() yöntemi kullanılır. Bu yöntem, bölüm yapmak istediğimiz dizinin başlangıç ve bitiş indisleri arasındaki öğeleri seçerek yeni bir dizi oluşturur. slice() yöntemi, orijinal diziyi değiştirmez, sadece belirtilen bölümü alarak yeni bir dizi oluşturur.

Bir örnek vermek gerekirse, [1, 2, 3, 4, 5] dizisinin ilk iki öğesi alarak yeni bir dizi oluşturmak istersek, slice() yöntemini şu şekilde kullanabiliriz:

Örnek Kullanım Beklenen Sonuç
let dizi = [1, 2, 3, 4, 5];
dizi.slice(0, 2);
[1, 2]

Bu örnekte, slice() yöntemi ile dizinin 0. ve 1. indisleri arasındaki öğeler seçilerek yeni bir dizi oluşturuldu. Oluşturulan dizi [1, 2] şeklinde sonuç verdi.

slice() yöntemi, başlangıç veya bitiş indisi olarak negatif sayılar da alabilir. Bu sayede dizinin sonundan başlamak için kullanabiliriz. Örneğin, son iki öğeyi almak için aşağıdaki gibi kullanabiliriz:

Örnek Kullanım Beklenen Sonuç
let dizi = [1, 2, 3, 4, 5];
dizi.slice(-2);
[4, 5]

Bu örnekte, slice() yöntemi ile dizinin sondan 2. ve son öğeleri arasındaki öğeler seçilerek yeni bir dizi oluşturuldu. Oluşturulan dizi [4, 5] şeklinde sonuç verdi.


Başlangıç ve Bitiş İndisleri

JavaScript'te dizileri bölme işlemi gerçekleştirmek için slice() yöntemi kullanılır. Bu yöntemde belirtilen dizinin belli bir bölümü başka bir diziye kopyalanarak bölme işlemi tamamlanır. slice() yönteminde belirtilmesi gereken başlangıç ve bitiş indisleri, parçalara ayırma işleminin nasıl yapılacağı konusunda önemlidir. Şimdi bu başlangıç ve bitiş indislerinin nasıl belirleneceğini inceleyelim.

slice() yöntemi kullanılarak dizileri bölme işlemi yaparken başlangıç indisini belirlemek için ilk önce hangi indeksin kullanılacağına karar vermek gerekiyor. Dizinin ilk öğesine ulaşmak için indeks 0 olarak belirlenir. Ancak 0 indeksi belirlemek istemeyenler farklı bir indisle başlayabilirler. Örneğin; 2 indeksle başlarsak dizinin üçüncü öğesinden itibaren bölme işlemi gerçekleştirilebilir.

Başlangıç indisinden sonra, bitiş indisine karar vermek gerekiyor. Bitiş indisi, bölme işlemi sırasında alınacak öğelerin sayısını belirler. Bitiş indisi, bölünecek dizinin uzunluğundan büyükse, bölme işleminin tüm diziyi kapsayacak şekilde gerçekleşeceği anlamına gelir. Örneğin; bir dizi 5 öğeden oluşuyorsa ve biz slice() yöntemiyle 2. indisinden başlayarak bölme işlemi gerçekleştirirsek, bitiş indisi olarak 7 (5+2) verirsek, tüm dizinin bölüneceğini görebiliriz.

Bu nedenle, başlangıç ve bitiş indislerinin doğru belirlenmesi slice() yöntemiyle bölme işlemini oldukça önemlidir. Başlangıç indisinden önceki tüm öğeler atılırken, bitiş indisi dahil olan öğeler bölme işlemine dahil edilir. Başlangıç ve bitiş indisi arasındaki öğeler alınarak yeni bir dizi oluşturulur. Slice() yöntemi ile dizilerin bölünmesi işlemi oldukça kolay ve kullanışlıdır.


Girdi Olarak Negatif İndis Kullanımı

JavaScript'te, slice() yöntemi kullanarak bir diziyi belirli bir bölüme ayırabilirsiniz. Ancak, dizinin indis numaraları pozitif tamsayılarla belirtilirken, negatif sayıların kullanılması da mümkündür. Negatif bir indis, dizinin sonundan geriye doğru saymak için kullanılır. Örneğin, bir dizi 6 öğeliden oluşuyorsa, dizinin son öğesi için indis numarası 5'tir. Ancak, son öğeyi -1 olarak da belirtebilirsiniz. Aynı şekilde, sondan ikinci öğe için 5 ve -2 iki farklı yol olacaktır.

Negatif indis kullanımı, diziyi tersten bölmenize olanak tanır. Örneğin, aşağıdaki gibi bir dizi ele alalım:

var dizi = ["elma", "armut", "muz", "portakal", "çilek"];

Bu diziyi, sondan ikinci elemandan sonraki tüm öğeleri içeren bir alt diziye ayırmak istiyoruz. Bunun için slice() yöntemini kullanıyoruz ve başlangıç indisi olarak -4, bitiş indisi olarak ise undefined veriyoruz:

var altDizi = dizi.slice(-4, undefined);

Bu şekilde kodumuzu çalıştırdığımızda, altDizi şu şekilde olacaktır:

["muz", "portakal", "çilek"]

Negatif indisleri kullanmak, dizinin tersten parçalanması gereken durumlarda oldukça kullanışlıdır.


Splice Metodu

JavaScript dilinde dizilerin bölünmesi için splice() yöntemi kullanılır. Bu yöntem, dizinin hangi kısmının silineceğini belirlemek için ilk ve son indeksleri alır. İlk olarak, silinecek öğelerin başlangıç ve bitiş indeksleriyle kullanılır. splice() yöntemi aynı zamanda, belirtilen dizinin içine yeni öğeler de ekleyebilir.

Örneğin, splice() yöntemi kullanarak dizi içindeki belirli bir öğeyi silmeniz gerekiyorsa, silinecek öğenin dizideki indeksini verirsiniz. Ardından, kaç öğenin silineceğini belirlemek için silinecek öğenin indeksine ek olarak ikinci bir sayı belirlenir. Öğe silinemiyorsa, splice() yöntemi hiçbir işlem yapmaz.

Aynı şekilde, splice() yöntemi, belirli bir konumdan başlayarak dizideki öğeleri birleştirmek veya yeni öğeler eklemek için de kullanılır. Yeni öğelerin ekleneceği konumu belirlemek için splice(), ilk olarak belirtilen indeksi kullanır.

splice() yöntemi, öğeleri herhangi bir sayıda ve herhangi bir pozisyonda silmek veya değiştirmek için kullanılabilir. Bu yöntem, dizileri düzenlemenin etkili bir yoludur.


İlk İndis ve Silinecek Öğe Sayısı

JavaScript'te dizileri bölme işlemi yaparken splice() yöntemi kullanılabilir. Bu yöntem ile dizinin hangi kısmının silineceği belirlenebilir. Bu işlem yapılırken ilk indis ve silinecek öğe sayısı parametre olarak kullanılır. İlk indis, bölünme işlemi yapılacak dizinin hangi indisinden başlayacağının belirlenmesinde kullanılır. Silinecek öğe sayısı ise belirtilen indisten itibaren kaç öğe silineceğini ifade eder. Örneğin, [-2, -1, 0, 1, 2] dizisinde 1. indisten başlayarak 2 öğe silmek istendiğinde splice(1, 2) kullanılır. Bu işlem sonrasında dizinin 1 ve 2 indisindeki öğeler silinir ve kalan dizinin elemanları [-2, -1] şeklinde olur. Kullanımı oldukça basit olan splice() yöntemi, dizilerin bölünme işlemleri için sıklıkla tercih edilen bir yöntemdir.


Yeni Öğeler Eklemek

JavaScript dilindeki splice() yöntemi, sadece dizinin belirli bir kısmını silmekle kalmaz, aynı zamanda yeni öğeler eklemek için de kullanılabilir. Dizideki bir öğe yerine birden fazla öğe eklemek de mümkündür. Splice yöntemi, ilk parametre olarak dizinin kaçıncı indisinde başlayacağını, ikinci parametre olarak kaç öğenin silineceğini ve sonraki parametreler olarak da eklenmek istenilen öğeleri alır.

Örneğin, aşağıdaki kod satırı, bir dizi içinde belirli indisler arasına yeni öğeler ekler:

```javascriptlet arr = [1, 2, 3, 4, 5];arr.splice(2, 0, 'a', 'b');```Burada, splice() yöntemi, arr dizisindeki 2. indisten başlamak suretiyle, hiçbir öğe silmeden 'a' ve 'b' öğelerini ekler. Bu örnekte, arr dizisi şu şekilde olur: [1, 2, 'a', 'b', 3, 4, 5].

splice() yöntemi ile aynı zamanda dizi içindeki bir öğenin değiştirilmesi de mümkündür. Bunu yapmak için önce belirli bir öğeyi silmeniz, daha sonra yeni öğeler ekleyebilmeniz gerekir. Örneğin:

```javascriptlet arr = [1, 2, 3, 4, 5];arr.splice(2, 1, 'a', 'b');```Burada, splice() yöntemi, arr dizisindeki 2. indisten başlayarak, sadece bir öğeyi siler ve yerine 'a' ve 'b' öğelerini ekler. Bu örnekte, arr dizisi şu şekilde olur: [1, 2, 'a', 'b', 4, 5].

Eklemeleri değişken sayıda ve farklı tipte öğelerle yapabilirsiniz. Splice yöntemi, eklenen öğelerin sıralarını korur ve ilk öğeyi eklemek istediğiniz ana kadar silme veya eklemeye devam eder.


Yığıt (Stack) ve Kuyruk (Queue) Yapıları

JavaScript'te diziler sadece öğeleri saklamakla kalmaz, birçok farklı kullanım için de kullanılabilirler. Diziler aynı zamanda yığın ve kuyruk veri yapılarına da dönüştürülebilirler.

Yığıt yapısı, son eklenen öğelerin ilk önce çıkarıldığı bir veri yapısıdır. JavaScript dizileri, yeni öğelerin sonuna eklendiğinde yığın yapısı olarak kullanılabilirler. Bu işlem, push () yöntemi ile gerçekleştirilir. Yeni öğeler dizinin sonuna eklenir ve son eklenen öğe yığıtın en üstüne yerleştirilir. Yığıt yapısında, en üstteki öğeye erişmek ve onu kaldırmak için pop() yöntemi kullanılabilir.

Kuyruk yapısı, eklenme sırasına göre öğelerin kaldırıldığı bir veri yapısıdır. JavaScript dizileri, yeni öğelerin sonuna eklenirken kuyruk yapısı olarak kullanılabilirler. Bu işlem, push () yöntemi ile gerçekleştirilir. En eski öğe dizinin başında yer alır ve kuyruğun ilk öğesi olarak kabul edilir. Kuyruktan ilk öğeyi kaldırmak ve buna erişmek için shift() yöntemi kullanılır.

Yukarıda belirtilen öğelerle birlikte, JavaScript dizilerinin yığın ve kuyruk veri yapılarına dönüştürülmesi oldukça kolaydır. Diziler, push() ve pop() yöntemleri kullanılarak yığın yapısı olarak çalışırken, push() ve shift() yöntemleri kullanılarak kuyruk yapısı olarak kullanılabilirler. Bu şekilde, diziler birçok programlama işleminde kullanılabilir ve veri yapılarından farklı şekillerde yararlanılabilirler.


Stack Yapısı

Diziler, yığın yapısı olarak da kullanılabilir. Yığın yapısı, verilerin en son eklenen öğenin en önde olacağı şekilde biriktirilmesini sağlar. Bu yapının kullanımı, verileri ters sırayla çıkarmak istediğimizde faydalıdır.

JavaScript'te bir dizi, push() yöntemi kullanılarak yığın olarak kullanılabilir. Yeni bir öğe eklemek için push() yöntemi kullanılırken, diziden öğe kaldırmak için pop() yöntemi kullanılır. pop() yöntemi dizinin en son eklenen öğesini çıkarıp, geri döndürür. Bu yöntem, yığın yapısında son eklenen verinin önce çıkarılmasını sağlar.

Örneğin, [1, 2, 3] gibi bir dizi, yığın yapısına dönüştürülebilir. Bu yapının sonuna push(4) yöntemi kullanılarak 4 öğesi eklenir. Sonuç olarak, [1, 2, 3, 4] şeklinde bir dizi oluşur. Bu diziden pop() yöntemi ile son öğe çıkarıldığında, geriye [1, 2, 3] şeklinde bir dizi kalır.

Ayrıca, dizinin sonuna push() yöntemi ile yeni bir öğe ekleyebileceğimiz gibi, dizinin başına unshift() yöntemi kullanarak da yeni bir öğe ekleyebiliriz. Benzer şekilde, diziden ilk öğeyi kaldırmak için shift() yöntemi kullanılır.

Yığın yapısı, diğer veri yapıları gibi kullanılabilir. Örneğin, bir web uygulamasında, 'undo' işlemi yaparken kullanılabilir. Kullanıcının yaptığı her işlem, yığın yapısına kaydedilir ve kullanıcı 'undo' işlemi yaptığında yığının en son eklenen öğesi geri alınır.

Yığın yapısı ayrıca, yapısal bir programlama ortamında da kullanılabilir. Programcı, bir işlem yaptığında, yığının en son eklenen işlemi iptal edebilir ve programın daha önceki bir aşamasına geri dönebilir. Bu şekilde, program hataları minimize edilir ve olası sorunlar daha hızlı çözülür.


Queue Yapısı

JavaScript dizileri, birçok farklı veri yapısına dönüştürülebilir. Bunlardan biri de kuyruk (Queue) yapısıdır. Kuyruk yapısı, verilerin ilk giren ilk çıkar (FIFO-First In First Out) prensibiyle çalışır. Bu yapının kullanımı, özellikle veri işleme ve saklama süreçlerinde oldukça yararlıdır.

JavaScript'te, bir dizi üzerinden kuyruk yapısını oluşturmak oldukça kolaydır. En basit haliyle, dizinin sonuna yeni öğeler ekleyerek kuyruk yapısı oluşturulabilir. Örneğin:

```javascriptlet kuyruk = [];kuyruk.push("ilk öğe");kuyruk.push("ikinci öğe");kuyruk.push("üçüncü öğe");```

Burada, `kuyruk` adlı dizi üzerine sırayla "ilk öğe", "ikinci öğe" ve "üçüncü öğe" değerleri eklenerek kuyruk yapısı oluşturulmuştur. Bu yapıyı kullanarak veriler, sırayla işlenip saklanabilir.

Kuyruk yapısında veri işleme işlemi yapılırken, ilk öğe önce işlenir ve kuyruktan çıkarılır. Böylece, kuyruğun başında bulunan diğer öğelerin indeks numaraları da değişir. Bunun için, dizinin `shift()` yöntemi kullanılabilir.

```javascriptlet ilk = kuyruk.shift();console.log(ilk); // "ilk öğe"```

Bu yöntem, dizi içindeki ilk öğeyi kuyruktan çıkarır ve ilgili değeri döndürür. Dizideki diğer öğeler de, sırayla bir öne kayarak yeni indeks numaraları alır.

Kuyruk yapısında bir diğer önemli yöntem ise `unshift()` yöntemidir. Bu yöntem, dizinin başına yeni bir öğe ekler. Böylece, kuyruktaki öğelerin indeks numaraları da bir öne kayar.

```javascriptkuyruk.unshift("dördüncü öğe");console.log(kuyruk); // ["ikinci öğe", "üçüncü öğe", "dördüncü öğe"]```

Bu örnek kodda, `unshift()` yöntemi kullanılarak "dördüncü öğe" değeri, dizinin başına eklenmiştir. Kuyruktaki öğeler, bir öne kayarak yeni indeks numaraları almıştır.

Tüm bu yöntemler, kuyruk yapısının kolayca oluşturulmasına ve verilerin sıralı bir şekilde işlenmesine olanak sağlar.