JavaKomut Dizisi Yöntemleri: Örnekle Oluşturma

⚡ Akıllı Özet

JavaKomut dosyası dizi yöntemleri, geliştiricilerin sıralı değer koleksiyonlarını tek bir nesne aracılığıyla depolamasına, almasına ve dönüştürmesine olanak tanır. Bu makale, dizi oluşturmayı, indeks erişimini, yerleşik yöntem ailelerini, yineleme tekniklerini, çok boyutlu yapıları ve beklenen çıktıyı içeren çalıştırılabilir bir örneği açıklamaktadır.

  • ???? Temel Konsept: Dizi, tek bir isim altında birçok değer tutan ve her değeri sıfır tabanlı bir indeks aracılığıyla gösteren bir nesnedir.
  • Oluşturma Sözdizimi: Köşeli parantezlerle yapılan doğrudan gösterim tercih edilirken, dizi oluşturucu eski kodlar için kullanılabilir durumda kalır.
  • Mutasyon Yöntemleri: push, pop, shift, unshift ve splice işlemleri orijinal diziyi değiştirir ve ya kaldırılan değeri ya da yeni uzunluğu döndürür.
  • 🔍 Mutasyona Uğramayan Yöntemler: slice, concat, join, indexOf ve includes fonksiyonları, depolanan öğeleri değiştirmeden diziyi okur.
  • 🔁 Yineleme Ailesi: forEach, map, filter, reduce ve find fonksiyonları her bir öğeye bir geri çağırma işlevi uygular ve fonksiyonel programlama kalıplarını destekler.
  • ⚠️ Sıralama Uyarısı: Varsayılan sıralama, değerleri metin dizeleri olarak karşılaştırır; bu nedenle sayısal veriler için açık bir karşılaştırma fonksiyonu gereklidir.
  • 🧱 İç içe geçmiş yapılar: Dizilerin içine başka diziler yerleştirmek, iki indeks ifadesiyle adreslenebilen çok boyutlu bir ızgara oluşturur.

JavaKomut Dizisi Yöntemleri

Dizi (Array) nedir? JavaSenaryo?

Dizi, saklanabilen bir nesnedir ürün koleksiyonuDiziler, aynı türden büyük miktarda veriyi saklamanız gerektiğinde gerçekten kullanışlı hale gelir. Örneğin, 500 çalışanın bilgilerini saklamak istediğinizi varsayalım. Değişkenler kullanıyorsanız, 500 değişken oluşturmanız gerekecektir; oysa aynı işlemi tek bir diziyle yapabilirsiniz. Bir dizideki öğelere, dizinin kimliğine başvurarak erişebilirsiniz. dizin numarasıVe bir dizinin ilk elemanının indeksi sıfırdır.

Kesin tipli dillerdeki dizilerin aksine, bir JavaKomut dosyası dizisi dinamiktir. Yeni bir öğe atandığında uzunluğu otomatik olarak artar ve tek bir dizi aynı anda dizeler, sayılar, mantıksal değerler, nesneler ve hatta diğer dizileri içerebilir. Bu esneklik, dizileri hem tarayıcı komut dosyalarında hem de sunucu tarafı kodlarında liste verileri için varsayılan kapsayıcı haline getirir.

Bir dizi nasıl oluşturulur? JavaSenaryo

İçinde bir dizi oluşturabilirsiniz JavaSenaryo aşağıda verildiği gibi.

var students = ["John", "Ann", "Kevin"];

Burada dizinizi oluşturulduğu anda “John”, “Ann” ve “Kevin” değerleriyle başlatıyorsunuz. “John”, “Ann” ve “Kevin”in indeksi sırasıyla 0, 1 ve 2'dir. Students dizisine daha fazla öğe eklemek istiyorsanız bunu şu şekilde yapabilirsiniz:

students[3] = "Emma";
students[4] = "Rose";

Dizi oluşturma işlemini Array yapıcı fonksiyonunu kullanarak da şu şekilde gerçekleştirebilirsiniz:

var students = new Array("John", "Ann", "Kevin");

OR

var students = new Array();

students[0] = "John";

students[1] = "Ann";

students[2] = "Kevin";

Dizi Elemanlarına Nasıl Erişilir ve Bunlar Nasıl Değiştirilir?

Her eleman numaralandırılmış bir konumda yer alır. Köşeli parantez gösterimi, indeks geçerli uzunluğa eşit olduğunda bir değeri okur, yeni bir değer atar veya yeni bir giriş ekler.

let students = ["John", "Ann", "Kevin"];

console.log(students[0]);              // John  - first element
console.log(students[students.length - 1]); // Kevin - last element

students[1] = "Anna";                // replace an existing value
students[3] = "Emma";                // append a new value

console.log(students);              // ["John", "Anna", "Kevin", "Emma"]
console.log(students.length);       // 4
console.log(students[9]);              // undefined - index does not exist

⚠️Uyarı: Geçerli uzunluğun çok ötesindeki bir indekse değer atamak, boş yuvalarla dolu seyrek bir dizi oluşturur. Kullanın push() Dizinin yoğunluğunu ve tahmin edilebilirliğini korumak için atlamalı indeks yerine doğrudan indeks kullanılır.

JavaKomut Dizisi Yöntemleri

Array nesnesi, geliştiricilerin dizileri kolay ve verimli bir şekilde işlemesine yardımcı olan birçok özellik ve yönteme sahiptir. Diziadı.özelliğini belirterek bir özelliğin değerini ve diziadı.method()'u belirterek bir yöntemin çıktısını alabilirsiniz.

  1. uzunluk özelliği -> Bir dizideki eleman sayısını bilmek istiyorsanız uzunluk özelliğini kullanabilirsiniz.
  2. prototip özelliği –> Yeni özellikler ve yöntemler eklemek istiyorsanız prototip özelliğini kullanabilirsiniz.
  3. ters yöntem -> Ters yöntem kullanarak bir dizideki öğelerin sırasını tersine çevirebilirsiniz.
  4. sıralama yöntemi –> Bir dizideki öğeleri `sort` yöntemini kullanarak sıralayabilirsiniz.
  5. pop yöntemi -> Bir dizinin son öğesini pop yöntemini kullanarak kaldırabilirsiniz.
  6. kaydırma yöntemi –> Bir dizinin ilk öğesini shift yöntemiyle kaldırabilirsiniz.
  7. itme yöntemi –> Dizinin son öğesi olarak bir değer ekleyebilirsiniz.

Aşağıdaki referans tablosu, en sık kullanılan yöntemleri gruplandırarak, hangi yöntemlerin orijinal diziyi değiştirdiğini ve hangilerinin yeni bir değer döndürdüğünü bir bakışta görmenizi sağlar.

Yöntem Amaç Geri dönüşler Orijinal Diziyi Değiştirir
it() Sonuna bir veya daha fazla öğe ekleyin. Yeni uzunluk Evet
pop() Son öğeyi kaldırın Kaldırılan öğe Evet
kaydırmayı kaldır() Öne bir veya daha fazla öğe ekleyin Yeni uzunluk Evet
vardiya() İlk öğeyi kaldırın Kaldırılan öğe Evet
ekleme() Öğeleri herhangi bir konuma ekleyin veya silin. Kaldırılan öğelerin dizisi Evet
çeşit() Ürünleri sipariş edin Sıralanmış dizi Evet
tersine çevirmek() Öğelerin sırasını tersine çevirin. Ters çevrilmiş dizi Evet
dilim() Dizinin bir bölümünü kopyala Yeni dizi Yok hayır
birleştirme() İki veya daha fazla diziyi birleştirin Yeni dizi Yok hayır
katılmak() Öğeleri bir dize halinde birleştirin. dizi Yok hayır
indeksi() Bir değerin konumunu bulun. İndeks veya -1 Yok hayır
içerir() Bir değerin var olup olmadığını test edin. doğru ya da yanlış Yok hayır

Öğe Ekleme ve Kaldırma

let fruits = ["apple", "banana"];

fruits.push("cherry");      // ["apple", "banana", "cherry"]
fruits.unshift("mango");    // ["mango", "apple", "banana", "cherry"]
fruits.pop();                // ["mango", "apple", "banana"]
fruits.shift();              // ["apple", "banana"]

// splice(startIndex, deleteCount, ...itemsToInsert)
fruits.splice(1, 0, "kiwi"); // ["apple", "kiwi", "banana"]
console.log(fruits);

Arama, Kopyalama ve Birleştirme

let colors = ["red", "green", "blue", "green"];

console.log(colors.indexOf("green"));     // 1  - first match only
console.log(colors.lastIndexOf("green")); // 3
console.log(colors.includes("pink"));     // false
console.log(colors.slice(1, 3));         // ["green", "blue"]
console.log(colors.join(" | "));         // red | green | blue | green
console.log(colors.concat(["black"]));   // new array, colors unchanged

Yineleme Yöntemleri: forEach, map, filter ve reduce

Modern JavaKomut dosyası, işlemin amacı doğrudan yöntem adında belirtildiği için, manuel indeks döngülerine kıyasla geri çağırma tabanlı yöntemleri tercih eder.

const scores = [45, 72, 88, 31, 95];

scores.forEach(s => console.log(s));   // prints each score

const doubled = scores.map(s => s * 2);  // [90, 144, 176, 62, 190]
const passed  = scores.filter(s => s >= 50); // [72, 88, 95]
const total   = scores.reduce((sum, s) => sum + s, 0); // 331
const first   = scores.find(s => s > 80);   // 88

console.log(doubled, passed, total, first);

💡 İpucu: Varsayılan sort() Öğeleri dizelere dönüştürür, bu nedenle [10, 9, 100].sort() İade [10, 100, 9].Şu gibi bir karşılaştırıcı geçirin: sort((a, b) => a - b) Sayıları doğru şekilde sıralamak.

JavaKaynak Kodlu Komut Dosyası Dizisi Örneği Code

Aşağıdaki kod, bir öğrenci dizisi oluşturur, prototip özelliği aracılığıyla özel bir görüntüleme yöntemi ekler ve ardından sırasıyla uzunluk, sıralama, ters çevirme, çıkarma ve ekleme işlemlerini gösterir. Bunu kendiniz deneyin:

<html>
<head>
	<title>Arrays!!!</title>
	<script type="text/javascript">
		var students = new Array("John", "Ann", "Aaron", "Edwin", "Elizabeth");
		Array.prototype.displayItems=function(){
			for (i=0;i<this.length;i++){
				document.write(this[i] + "<br />");
			}
		}
		document.write("students array<br />");
		students.displayItems();
		document.write("<br />The number of items in students array is " + students.length + "<br />");
		document.write("<br />The SORTED students array<br />");
		students.sort();
		students.displayItems();
		document.write("<br />The REVERSED students array<br />");
		students.reverse();
		students.displayItems();
		document.write("<br />THE students array after REMOVING the LAST item<br />");
		students.pop();
		students.displayItems();
        document.write("<br />THE students array after PUSH<br />");
        students.push("New Stuff");
		students.displayItems();
	</script>
</head>
<body>
</body>
</html>

Beklenen çıktı:

students array
John
Ann
Aaron
Edwin
Elizabeth

The number of items in students array is 5

The SORTED students array
Aaron
Ann
Edwin
Elizabeth
John

The REVERSED students array
John
Elizabeth
Edwin
Ann
Aaron

THE students array after REMOVING the LAST item
John
Elizabeth
Edwin
Ann

THE students array after PUSH
John
Elizabeth
Edwin
Ann
New Stuff

Dikkat edin, sıralama işlemi "Aaron"ı "Ann"den önce yerleştiriyor çünkü büyük ve küçük harfler karakter kodlarına göre karşılaştırılıyor. Ayrıca, pop işleminin "Aaron"ı ters çevrilmiş diziden kaldırdığını da fark edin; bu da hem sıralama hem de ters çevirme işlemlerinin orijinal diziyi yerinde değiştirdiğini doğrular.

Bir Döngü Nasıl Oluşturulur? JavaKomut Dosyası Dizisi

Dört tuvaletping Çeşitli stiller mevcuttur ve her biri farklı bir duruma uygundur. Klasik for döngüsü dizin üzerinde tam kontrol sağlar, for…of değerleri doğrudan okur, forEach niyeti açıkça ifade eder ve for…in nesne özelliklerine ayrılmalıdır.

const cities = ["Paris", "Tokyo", "Cairo"];

// 1. Classic for loop - index is available
for (let i = 0; i < cities.length; i++) {
    console.log(i + ": " + cities[i]);
}

// 2. for...of loop - value is available
for (const city of cities) {
    console.log(city);
}

// 3. forEach with index parameter
cities.forEach((city, index) => console.log(index, city));

// 4. entries() when both index and value are needed
for (const [index, city] of cities.entries()) {
    console.log(index, city);
}

While ve do…while gibi döngü sözdizimine ilişkin daha ayrıntılı bir inceleme, makalede yer almaktadır. Döngüler nasıl kullanılır? JavaSenaryo.

Çok Boyutlu Dizilerde JavaSenaryo

JavaKomut dosyasında özel bir matris türü bulunmamaktadır. Bir ızgara, elemanları kendileri de dizi olan bir diziden ibarettir ve tek bir hücreye ulaşmak için iki indeks ifadesi kullanılır.

const matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];

console.log(matrix[1][2]); // 6  - row index 1, column index 2

for (const row of matrix) {
    console.log(row.join(" "));
}

// flatten a nested array into a single level
console.log(matrix.flat()); // [1, 2, 3, 4, 5, 6, 7, 8, 9]

Çıktı:

6
1 2 3
4 5 6
7 8 9
[1, 2, 3, 4, 5, 6, 7, 8, 9]

Diziler, form doğrulamasından veri oluşturmaya kadar neredeyse her pratik betikte karşımıza çıkar. Devam edelim... pratik JavaKomut dosyası kod örnekleri, gözden geçirmek JavaKomut dosyası dizeleri metin işleme için ve hakkında bilgi edinin. dahili ve harici JavaSenaryo Bu komut dosyalarının bir sayfada nereye ait olduğuna karar vermek için. Dizi içerikleri üzerinde statik tür kontrolü isteyen geliştiriciler bir sonraki adıma geçebilirler. TypeScript öğretici.

SSS

Diziler, sayısal indekslerle adreslenen sıralı bir listeyi saklarken, nesneler ise belirli bir sıra olmaksızın adlandırılmış özellikleri saklar. Diziler, düz nesnelerin sağlamadığı push ve map gibi liste yöntemlerini miras alır.

Yalnızca diziler için true döndüren Array.isArray(value) kullanın. typeof operatörü burada güvenilir değildir çünkü diziler, tarihler ve null için aynı şekilde "object" döndürür.

Yayma sözdizimini […orijinal] veya original.slice() kullanın. Düz atama yalnızca referansı kopyalar, bu nedenle her iki değişken aracılığıyla yapılan düzenlemeler aynı temel diziyi etkiler.

indexOf ile konumu bulun ve bunu splice'a iletin, örneğin arr.splice(arr.indexOf(“Ann”), 1). Alternatif olarak, filter istenmeyen değeri hariç tutan yeni bir dizi döndürür.

Diziler, tarayıcıda sohbet mesajı geçmişlerini, gömme vektörlerini ve akış halindeki model belirteçlerini tutar. Map ve reduce gibi yöntemler, bu koleksiyonları bir API'ye gönderilmeden veya işlenmeden önce yeniden şekillendirir.

Evet, genellikle de öyle yaparlar. Yine de önerilen yöntemin orijinal diziyi değiştirip değiştirmediğini doğrulayın, çünkü beklenmedik bir ekleme veya sıralama React veya Vue bileşenindeki durumu bozabilir.

Bu yazıyı şu şekilde özetleyin: