1. filter() ile Yaratıcı Kopya
Array.prototype.filter() yeni bir dizi döndürür, orijinal diziyi değiştirmez.
JavaScript:
const arr = [1,2,3,4];
const cleaned = arr.filter(v => v !== 3);
// cleaned => [1,2,4]
Neden? Değişmezlik gerektiren durumlarda hata riskini azaltır.
2. indexOf() + splice() ile Yerinde Silme
Tek eşleşmeyi bulmak için indexOf kullanılır; bulduğunda splice kaldırır.
JavaScript:
const idx = arr.indexOf(3);
if (idx !== -1) arr.splice(idx, 1);
// arr => [1,2,4]
Neden? Tek bir öğeyi tek seferde kaldırmak için hızlı yöntem.
3. findIndex() ile Nesne Tarafı Silme
Eşleştirme, nesnelerin referansına değil özelliklerine göre yapılır.
JavaScript:
const objArr = [{id:1},{id:2}];
const idx = objArr.findIndex(o => o.id === 2);
if (idx !== -1) objArr.splice(idx, 1);
// objArr => [{id:1}]
Neden? Sayısal veya string değerler değil, nesne bazlı eşleşme gerektiğinde.
4. delete Operatörü – **Kullanılmasın
delete öğeyi siler ama dizinin uzunluğunu ayarlamaz; boşluk kalır.
JavaScript:
delete arr[1]; // arr => [1, <1 empty item>, 3, 4]
Neden? Dizi uzunluğu bozulur, beklenmedik davranışlara yol açar.
5. Çoklu Eşleşme İçin Döngü
Birden fazla aynı değerin kaldırılması gerekiyorsafilter() veya döngü ile splice kullanılabilir.
JavaScript:
const arr = [1,2,3,2,4];
const cleaned = arr.filter(v => v !== 2);
// cleaned => [1,3,4]
Neden? Tek seferde tüm eşleşmeleri temizler, performanslıdır.
Javascipt diziyle ilgili sorularınız varsa, hangi yöntemi tercih etmeniz gerektiği konusunda fikir mücadelesi içine giriyor musunuz?