Yeni Dizi Yöntemi: array.at(index)

Dizi öğelerine pozitif ve (nihayet!) negatif dizinlere ulaşmak

Yeni yönteminin en güzel yararı, normal köşeli parantez sözdizimi dizi[index] kullanılarak mümkün olmayan bir negatif index kullanarak dizinin sonundan öğelere erişmektir.

1. Köşeli parantez sözdiziminin sınırlandırılması

Bir dizi öğesine dizine göre erişmenin genel yolu, köşeli parantez dizisinin [dizin] kullanılmasıdır:

const meyveler = ['portakal', 'elma', 'muz', 'üzüm'];
const sec = meyveler[1];
sec; // => 'elma'

Çoğu durumda, köşeli parantez sözdizimi, öğelere pozitif bir dizinle (>= 0) erişmenin iyi bir yoludur. Ancak bazen öğelere baştan değil, sondan erişmek istersiniz. Örneğin dizinin son elemanına erişelim:

const meyveler = ['portakal', 'elma', 'muz', 'üzüm'];
const son = meyveler[meyveler.length - 1];
son; // => 'üzüm'

js meyveler[meyveler.length - 1], burada meyveler.length - 1, son elemanın dizinidir.

Zorluk, köşeli parantez erişimcisinin dizinin sonundan öğelere erişmek için basit bir yola izin vermemesi ve ayrıca bir negatif indeksi kabul etmemesidir. Neyse ki, yeni bir teklif (Ocak 2021 itibariyle 3. aşamada) at() yöntemini dizilere (string içinde geçerli olacak) getiriyor ve köşeli parantez erişimcisinin birçok sınırlamasını çözüyor.

2. array.at()

Basit bir ifadeyle, array.at(index) öğeye indeks argümanından erişir. indeks bağımsız değişkeni pozitif bir tam sayıysa >= 0 ise, dizindeki öğeyi döndürür:

const meyveler = ['portakal', 'elma', 'muz', 'üzüm'];
const sec = meyveler.at(1);
sec; // => 'elma'

Dizin bağımsız değişkeni dizi uzunluğundan büyük veya eşitse, normal erişimci gibi yöntem tanımsız döndürür:

const meyveler = ['portakal', 'elma', 'muz', 'üzüm'];
const sec = meyveler.at(999);
sec; // => undefined

Gerçek sihir, array.at() yöntemiyle negatif bir dizin kullandığınızda gerçekleşir - daha sonra öğeye dizinin sonundan erişilir. Örneğin, dizinin son öğesine erişmek için -1:

const meyveler = ['portakal', 'elma', 'muz', 'üzüm'];
const son = meyveler.at(-1);
son; // => 'üzüm'

Burada array.at() yönteminin öğelere nasıl eriştiğine ilişkin daha ayrıntılı bir örnek verilmiştir:

const sebzeler = ['patates', 'domates', 'soğan'];

sebze.at(0); // => 'patates'
sebzeler.at(1); // => 'domates'
sebze.at(2); // => 'soğan'
sebze.at(3); // => undefined

sebzeler.at(-1); // => 'soğan'
sebze.at(-2); // => 'domates'
sebze.at(-3); // => 'patates'
sebze.at(-4); // => undefined

index negatif bir dizin < 0 ise, array.at(negatifIndex) öğeye dizi.length + negatifIndex dizininde erişir:

const meyveler = ['portakal', 'elma', 'muz', 'üzüm'];
const negatifIndex = -2;

meyveler.at(negatifIndex); // => 'muz'
meyveler[meyveler.length + negatifIndex]; // => 'muz'

Uygulamanıza array.prototype.at polyfill’i eklemeniz ve bugün array.at() kullanmaya başlamanız için yeterli!