Takip et

İç İçe Objelere Erişmek ve Doğrulamak İçin Yardımcı Fonksiyonlar: Bölüm 2

İç İçe Objelere Erişmek ve Doğrulamak İçin Yardımcı Fonksiyonlar: Bölüm 2

Merhaba! Bu yazımızda iç içe geçmiş JavaScript nesnelerinden veri alıp doğrulama için yararlı yardımcı fonksiyonları inceleyeceğiz. Bir önceki yazımızda, derinlemesine nesne gezintisi için temel işlevler ele alınmıştı. Bu yazımızda ise daha karmaşık senaryolara ve doğrulama tekniklerine odaklanacağız.

İç İçe Nesnelerden Veri Almak

Öncelikle, iç içe geçmiş nesnelerden verileri nasıl alabileceğimize bakalım. Geçen sefer basit “get” fonksiyonunu kullanmıştık. Ancak gerçek dünya senaryolarında, veri yolunu dinamik olarak belirlemek gerekebilir. Bunun için, veri yolunu bir dize olarak kabul eden ve ilgili değeri döndüren bir “get” fonksiyonu yazabiliriz:

“`javascript
function get(obj, path) {
const keys = path.split(‘.’);
let result = obj;
for (const key of keys) {
if (result && result.hasOwnProperty(key)) {
result = result[key];
} else {
return undefined;
}
}
return result;
}
“`

Bu fonksiyon, “path” parametresini nokta (.) ile ayrılmış bir dize olarak kabul eder. Bu dize, istenen veriye ulaşmak için izlenecek yolu belirtir. Daha sonra bu yolu parçalara ayırır ve nesnede her bir parçanın olup olmadığını kontrol eder. Eğer yolun bir kısmı eksikse veya geçersiz ise “undefined” döndürür. Aksi takdirde, istenen değeri döndürür.

Veri Doğrulama

Şimdi de veri doğrulama konusuna geçelim. Bir nesnedeki verinin doğru formatta olduğundan emin olmak önemlidir. Örneğin, bir kullanıcı adı en az 3 karakter uzunluğunda olmalı ve sadece harfler ve rakamlar içermelidir. Bu tür doğrulamaları yapmak için “validate” fonksiyonu kullanabiliriz:

“`javascript
function validate(obj, rules) {
let errors = {};
for (const key in rules) {
if (rules.hasOwnProperty(key)) {
const rule = rules[key];
const value = get(obj, key);
if (!rule(value)) {
errors[key] = `Invalid value for ${key}`;
}
}
}
return errors;
}
“`

Bu fonksiyon, “rules” parametresini bir nesne olarak kabul eder. Bu nesne, her bir anahtarın doğrulama fonksiyonunu temsil ettiği bir dizi doğrulama kuralını içerir. “validate” fonksiyonu, her bir kuralı uygular ve kural başarısız olursa ilgili anahtar için hata mesajı oluşturur. Tüm hataların saklandığı bir nesneyi döndürür. İşte bazı temel doğrulama fonksiyonlarının örnekleri:

“`javascript
function isString(value) {
return typeof value === ‘string’;
}

function isNumber(value) {
return typeof value === ‘number’ && !isNaN(value);
}

function isEmail(value) {
// Email formatını kontrol eden karmaşık bir regex kullanabilirsiniz
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value);
}
“`

Bu fonksiyonlar, verinin türünü ve formatını kontrol etmek için kullanılabilir.

Örnek Kullanım

İşte bu fonksiyonları nasıl kullanacağınıza dair bir örnek:

“`javascript
const user = {
name: ‘John Doe’,
age: 30,
email: ‘john.doe@example.com’
};

const rules = {
name: isString,
age: isNumber,
email: isEmail
};

const errors = validate(user, rules);
console.log(errors); // { } – Hiç hata yok
“`

Bu örnekte, “user” nesnesinde tanımlanan verilerin doğrulama kurallarına uyup uymadığını kontrol ediyoruz. Herhangi bir hata yoksa “errors” nesnesi boş olacaktır. Aksi takdirde, ilgili anahtarlar için hata mesajlarını içerecektir.

Sonuç

Bu yazımızda, iç içe geçmiş nesnelerden veri alıp doğrulamak için yardımcı fonksiyonlar oluşturduk. Bu fonksiyonlar, kodunuzun temiz, organize ve okunabilir olmasını sağlar. Veri doğrulama, güvenilir ve sağlam uygulamalar oluşturmak için hayati önem taşır.

Kaynaklar

#Etiketler: JavaScript, Nesne, Doğrulama, Yardımcı Fonksiyon, Veri Alımı, Gezinme, İç İçe, Kural, Regex, Email, String, Number, Blog, Fatih Soysal, Teknik Yazı, Kodlama

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Mobil sürümden çık