Javascript göz korkutucu görünebilir ve bir diziyi düzleştirmek gibi karmaşık sorunlarla uğraşırken, yanıt en iyi ihtimalle mantıksız görünebilir. Bununla birlikte, dizilerdeki diziler sorununun çözülmesinin basit bir yolu vardır ve bu Özyinelemeli Fonksiyonları kullanmaktır.
Başlamak için, "Düzleştirilmemiş" bir dizinin neye benzediğini açıklamama izin verin. Düzleştirilmemiş dizi, içinde dizileri içeren bir dizidir. Bunu, en düşük seviyeli dizinin içindeki diğer tüm dizileri içerdiği ve bu dizilerin aynı zamanda içlerinde dizileri de içerdiği zirveler ve vadiler gibi düşünün. Kodda şöyle görünecek:
let unflatArray = [55, 23, [45, 7, [9, 2, [67], 6, 1], 54, 23, [99, 92], 45]]
Gördüğünüz gibi, her seviyede yer alan sayılar, 67 ile “En Üst” e kadar yükseliyor, ancak 99 ve 92'nin olduğu başka bir küçük tepe var. Peki ama temel diziden, sonra içindeki tüm dizilerden birer birer nasıl geçiyor? Yinelemeli işlevler burada devreye girer.
Özyinelemeli işlev, kendi kendine çağıran bir işlevdir. İşleve ilk çağrı vardır, ardından özyinelemeli işlevin yeniden nasıl çağrıldığına bağlı olarak kendi içinde aynı işlevin birçok çağrısı ve tekrarı vardır. Düzleştirilmemiş diziler için mükemmeldir çünkü bir diziden sırayla ne zaman geçeceğimizi seçebiliriz, sonra başka bir diziye girip bu diziyi yapmaya başladığımızda ortada duraklatabiliriz, düzleştirilmemiş diziyi organize etmeye çalışmak yerine, sadece çapraz diğer diziler gibi, çok daha küçük parçalar halinde. Bunun nasıl yapıldığına bir bakalım:
Gördüğünüz gibi, işlevin kendisi aslında son derece basit. Yaptığımız şey, bir dizi alacak bir işlev yaratmak. Daha sonra bu dizi üzerinde yinelenecektir. Her yineleme için, geçerli dizi öğesinin türü bir sayı ise, bu sayıyı yeni flatArray listesine ekler. Ancak, bir sayı görmezse, flattenArray işlevinin içinden flattenArray işlevini çalıştırır . İşlevin yeni bir yinelemesi her çalıştığında, flattenArray'in önceki yinelemesinde for döngüsüne geri dönmeden önce, bu işlevi ilk olarak ele alır. Bu şekilde, sonuç, düzleştirilmemiş dizideki gibi geldikleri sırayla sayılara sahip tek bir dizidir. Ayrıca, bireysel ihtiyaçlarınıza uyması için "typeof" koşulunu, dizeler veya mantıksal değerler gibi diğer veri türlerine eşit olacak şekilde değiştirebilirsiniz.
Bununla birlikte, Yinelemeli İşlevlerin bu basit kullanımı, size Facebook'ta bir iş bile sağlayabilir, çünkü bu, potansiyel çalışanlarından sordukları ortak bir teknik mülakat sorusudur. Aklında bulunsun!
Tarif Monorepo Hey! Ben Berkay Aydın, Jotform'da Mühendislik Direktörü ve Ön Uç Mimarıyım. Ön uç mimarimizi yeniden yapılandırırken öğrendiklerimi size anlatacağım.
Hey geliştiriciler, her şeyin doğru planlandığı ve uygulandığı ve sürümün sonunda sayfa Google'da 2. sayfada yer alan, büyüyen bir işletme için bundan daha kötüsü olamaz. Şimdi, bu tarihte herkes her şeyi Google'da araştırıyor ve ürününüzü Google arama sonuçlarının en üstüne çıkarmak, rekabette hayatta kalmak için çok önemli.
Gündem: Giriş: TL; Ama okuyabilirim: A / B testi, CloudFront ve Lamba @ edge hakkında zaten bilginiz varsa, AWS Lambda @ edge ile doğrudan A / B testine gidin. A / B testi nedir? A / B testi, kullanıcıların bir web sitesinin iki farklı versiyonunun katılımını karşılaştırmaya odaklanan bir UX araştırma metodolojisidir.
Bugün AppStore'daki birçok uygulama, tablo görünümünü kaydırırken içeriği tablo görünümü başlığındaki ölçekleme gibi davranışlara sahiptir. Bu tür davranışlara nasıl ulaşabileceğimizin en basit yaklaşımını size göstereceğim.
İlk blogumda söz verdiğim gibi 'DOM Nedir?' burada 'DOM işleme' üzerine bir blog var. Bu blogda DOM'a daha fazla dalacağız ve DOM işlemenin ne olduğunu ve nasıl yapıldığını öğreneceğiz.
Node.js'de akışların nasıl çalıştığını hiç merak ettiniz mi? Sahiptim.