Bugün başka bir JavaScript dizi yöntemi olan some()
yöntemine bakalım. some()
yöntemini kullanarak bir öğenin dizide bulunup bulunmadığını nasıl belirleyeceğimizi öğreneceğiz.
Her zaman olduğu gibi bu makaledeki kod örnekleri JavaScript dilinde yazılmıştır. Bu nedenle, doğru anlamak için dil bilgisi gereklidir. Lafı daha fazla uzatmadan konuya girelim.
some()
yöntemi nedir ?Javascript some() yöntemi, en az bir dizi üyesinin verilen işlev tarafından tanımlanan testi karşılayıp karşılamadığını belirler. Belirtilen işlevin true değerini döndürdüğü dizide bir öğe bulursa true değerini döndürür; aksi takdirde false değerini döndürür. Dizide herhangi bir değişiklik yapmaz.
Bu yöntemi daha iyi anlamak için bu kod parçacığını inceleyelim:
const basket = ["oranges", "apples", "pineapple", "yam"] basket.some(bas => bas.length === 3) // true basket.some(bas => bas.length <= 1) // false
Sepet dizisindeki meyvelerden birinin uzunluğunun tam olarak 3'e eşit olup olmadığını test etmeye çalışıyoruz. En azından dizide bir üye bu teste uyuyor; bu durumda "yam"dır. Beklediğimiz sonuç doğru olacaktır. İkinci koşul, meyve uzunluğunun 1'den küçük veya ona eşit olup olmadığını kontrol eder. Bu yanlış sonuç verir çünkü açıkçası 1'den küçük veya ona eşit bir uzunluğumuz yoktur.
some()
yöntemini nasıl kullanırım ?Javascript some() yönteminin kullanımı kolaydır; sana nasıl yapılacağını göstereyim.
Sözdiziminin nasıl yazıldığını anlayarak başlayalım.
Sözdizimi basitçe 'bazı' kelimesinin '()' parantezi içine alınmasıyla aşağıdaki gibi yazılır:
some()
Bu bir yöntem olduğu için argümanları kabul eder, bu da size some() yöntemini kullanarak bir diziyle yapabilecekleriniz konusunda daha fazla esneklik sağlar.
Bunlar aşağıdaki gibidir:
element parametresi dizide işlenmekte olan geçerli öğeyi gösterir.
İndeks, dizide işlenen geçerli öğenin yalnızca indeksidir.
Bu, some() yöntemini çağırdığımız dizidir.
Artık sözdizimini anladığımıza göre, tam yöntemin neye benzediğine bakalım.
some((element, index, array) => { /*... */ })
Gördüğünüz gibi, yukarıdaki kod parçacığında bu yöntemin nasıl oluşturulacağına dair net bir örnek sağlayan üç parametremiz var.
İhtiyaçlarınıza bağlı olarak belirli özellikleri atlamayı seçebilirsiniz. Dizine benzer şekilde, dizi hakkında daha fazla ayrıntı istiyorsanız onu seçeneklerden biri olarak sunabilirsiniz. Tüm kriterlerin her zaman dahil edilmesi gerekmez.
Javascript yazmanın üç yaygın yolu şunlardır:
Geleneksel işlevin karşılaştığı bazı sorunları çözmeye çalışan ok işlevi ES6'da tanıtıldı. Bu işlev aynı zamanda some() yöntemleriyle de kullanılabilir:
some((element, index, array) => { /*... */ })
Geri çağırma fonksiyonunu bir değişkene kaydetmeden some() yönteminde yazma yeteneğine sahibiz.
const basket = ["oranges","apples","pineapple","yam"] const result = basket.some(function (element, index, array)) { return element.length >= 7 }) console.log(result)
Bu stil, önce işlevin bildirilmesi ve bir değişkende saklanması, ardından bunu some() yöntemine geri çağrı olarak iletilmesiyle yazılabilir:
const basket = ["oranges","apples","pineapple","yam"] function callBack(bas){ return bas.length === 7 } const result = basket.some(callBack) console.log(result)
Form gönderimlerini işlerken, hangi giriş alanlarının belirli gereksinimleri karşıladığını belirlemek için some()
işlevi kullanılabilir. Örneğin, herhangi bir girişin geçerli e-posta adresleri içerdiğini veya en az bir zorunlu alanın doldurulduğunu doğrulayabilirsiniz.
Bunun nasıl görünebileceğine dair size bir örnek vereceğim.
const formInputs = document.querySelectorAll('input'); const isAnyInputEmpty = Array.from(formInputs).some(input => input.value === ''); if (isAnyInputEmpty) { console.log('Please fill in all required fields.'); } else { console.log('Form submitted successfully.'); }
Kod örneğinde kullanıcının boş alan göndermemesini sağlıyoruz; Boş bırakırlarsa hemen bilgilendirmek istiyoruz. En azından ilgili verileri göndererek gereklilikleri karşılıyorlarsa, gönderimi biz gerçekleştirmek istiyoruz.
Web uygulamamızda bir ürün sepetimiz veya veri yapımız varsa, belirli bir ürünün mevcut olup olmadığını belirlemek için some() işlevini kullanabiliriz. Bu, özellikle bir öğenin mevcut olup olmadığına bağlı olarak belirli eylemleri gerçekleştirmek istediğimizde faydalıdır. Bunu daha iyi açıklayan bu kod örneğine bir göz atalım.
const shoppingCart = ['shoes', 'T-shirt', 'trouser']; const itemPresent = shoppingCart.some(item => item === 'trouser'); if (itemPresent){ console.log('Product exists in the cart.') } else { console.log('Product does not exist in the cart.') }
Alışveriş sepetinde 'pantolon' olup olmadığını kontrol ediyoruz. Sepette olduğunu doğruladığımızda konsola giriş yapıyoruz.
Kullanıcı kimlik doğrulama ve yetkilendirme sistemlerini uygularken, bir kullanıcının en az bir gerekli izne sahip olup olmadığını veya belirtilen rollerden herhangi birine ait olup olmadığını kontrol etmek için some() işlevini kullanabiliriz. Bu, belirli işlevlere veya kaynaklara erişimi kontrol etmemizi sağlar.
const userRoles = ['admin', 'editor']; const permissions = ['admin', 'moderator']; const hasRequiredRole = permissions.some(role => userRoles.includes(role)); if (hasRequiredRole){ console.log('Access granted.') } else { console.log('Access denied.'); }
Kod örneğinde, kullanıcının rollerine göre izinler vermek için include() ve some() yöntemlerinin kombinasyonunu kullandık. Bir kullanıcının rolü gerekli izne uygunsa ona erişim izni veririz; aksi halde erişimlerini reddederiz.
Son olarak, koşulları test etmek için javascript some() yöntemi kullanılır. Orijinal diziyi değiştirmez. Üç parametreyi kabul ederler: element, Index ve dizi'; burada element parametresi dizide işlenmekte olan geçerli öğeyi belirtir ve index parametresi dizide işlenen geçerli öğenin "indeksini" gösterir.
JavaScript'in dizi yöntemine, özellikle de some() yöntemine ilişkin incelememi okuduğunuz için teşekkür ederim. Açıklama hakkında ne düşünüyorsunuz? Deneyecek misin?
Aşağıdaki yorumlarda düşüncelerinizi bana bildirin ve gelecekteki makaleler için lütfen beni HackerNoon'da takip edin .