Array(n) JavaScript'te Neden Yinelenemez?

Nov 29 2022
JavaScript'te Seyrek Diziler
Giriş JavaScript'te n kez yineleme kullanım durumuyla karşılaştıysanız, muhtemelen aşağıdaki çözümü uygulamaya çalışmış olabilirsiniz (özellikle reaksiyonda, bir JSX öğesini n kez oluşturmanız gerektiğinde). Seyrek Diziler JavaScript dizileri herhangi bir öğe olmadan, yalnızca uzunlukla başlatıldığında, tüm dizinlerdeki öğeler boş öğelerle doldurulur.
Unsplash'ta Jorge Rosal'ın fotoğrafı

giriiş

JavaScript'te defalarca yineleme kullanım durumuyla karşılaştıysanız, nmuhtemelen aşağıdaki çözümü uygulamaya çalışmış olabilirsiniz (özellikle reaksiyonda, bir JSX öğesini n sayıda kez oluşturmanız gerektiğinde).

Array(5).map(() => console.log("hello"))

Seyrek Diziler

JavaScript dizileri herhangi bir öğe olmadan, yalnızca uzunlukla başlatıldığında, tüm dizinlerdeki öğeler empty items.

forEachBu öğeler , map, , vb. gibi bazı dizi yineleme yöntemleriyle yinelenemez filter. Bu öğeler boş öğeleri atlayacak ve varsa boş olmayan diğer öğeler üzerinde yinelenecektir.

Örneğin,

const arr = Array(5);

console.log(arr); // [ <5 empty items> ]

arr[1] = 1;
arr[3] = 3;
arr[5] = 5;

console.log(arr); // [ <1 empty item>, 1, <1 empty item>, 3, <1 empty item>, 5 ]

arr.forEach((ele) => console.log(ele)); // 1, 3, 5

const arr = [1, 2, 3];

arr.length = 5;

console.log(arr); // [ 1, 2, 3, <2 empty items> ]

arr[7] = 8;

console.log(arr); // [ 1, 2, 3, <4 empty items>, 8 ]

arr.forEach((ele) => console.log(ele)); // 1, 2, 3, 8

delete arr[1];

console.log(arr); // [ 1, <1 empty item>, 3, <4 empty items>, 8 ]

const newArr = [1, , 2, , 3];

console.log(newArr); // [ 1, <1 empty item>, 2, <1 empty item>, 3 ]

Boş öğeler, döngü, dizin yoluyla erişim ve yayılma operatörü undefinedgibi bazı işlemlerde olduğu gibi ele alınır.for...of...

const arr = [1, , 2, , 3];

for (const ele of arr) { // 1, undefined, 2, undefined, 3, undefined
  console.log(ele);
}

console.log(...arr); // 1, undefined, 2, undefined, 3, undefined

console.log(arr[0]); // 1
console.log(arr[1]); // undefined

[...Array(3)].map((e) => console.log(e)); // undefined, undefined, undefined

Array.from({ length: 3 }).map((e) => console.log(e)); // undefined, undefined, undefined

Yukarıdaki yöntemler, React'te bir JSX öğesini birden çok kez işlemek gibi, tek bir ifadede belirli sayıda yineleme yapmanız gerektiğinde kullanışlıdır.

Hepsi bu kadar millet! Okuduğunuz için teşekkürler.

PlainEnglish.io'da daha fazla içerik . Haftalık ücretsiz bültenimize kaydolun . Bizi Twitter , LinkedIn , YouTube ve Discord'da takip edin . Growth Hacking ile ilgileniyor musunuz? Devreyi kontrol edin .