Kodlama: Javascript'te bir diziyi düzleştirme
Diziyi Düzleştir: Bir diziyi düzleştirmek, iç içe geçmiş diziler (yani diziler içindeki diziler) içerebilen bir diziyi alıp tek, tek boyutlu bir diziye dönüştürmek anlamına gelir. Başka bir deyişle, iç içe geçmiş tüm dizileri kaldırmayı ve öğelerini tek bir dizide birleştirmeyi içerir.
Birden fazla çözümü tartışacağız.
1. Çözüm: Özyinelemeyi Kullanma
Kod, FlattenArraybir diziyi bağımsız değişken olarak alan adlı bir işlevi tanımlar. İşlevin amacı, iç içe geçmiş bir dizi almak ve bunun düzleştirilmiş bir sürümünü döndürmektir. Örneğin, giriş ise [1, 2, [3, 4]], fonksiyon dönmelidir [1, 2, 3, 4].
İşlev, giriş dizisinin düzleştirilmiş sürümünü depolamak için kullanılacak olan adında boş bir dizi oluşturarak başlar. forArdından , giriş dizisindeki her bir öğeyi yineleyecek bir döngüye girer .
Giriş dizisindeki her öğe için işlev, yöntemi kullanarak öğenin kendisinin bir dizi olup olmadığını kontrol eder Array.isArray. Öğe bir diziyse, işlev kendini yinelemeli olarak iç içe geçmiş diziyle bir bağımsız değişken olarak çağırır ve bu concatyöntemi, düzleştirilmiş iç içe diziyi flatArrayişlevin başında oluşturulan diziyle birleştirmek için kullanır.
Öğe bir dizi değilse, işlev yalnızca öğeyi flatArray.
Giriş dizisindeki tüm öğeler işlendikten sonra, işlev flatArray.
Tam Kod:
// Flatten Array
function FlattenArray(arr) {
var flatArray = []
for (let i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
flatArray = flatArray.concat(FlattenArray(arr[i]))
} else {
flatArray.push(arr[i])
}
}
return flatArray
}
var arr = [1, 2, 3, 4, [5, 6, [7, 8]], [9]]
console.log(FlattenArray(arr))
Çözüm 2: Azaltma Yöntemini Kullanma
function flattenArray(arr) {
return arr.reduce(function(flatArray, current) {
if (Array.isArray(current)) {
return flatArray.concat(flattenArray(current));
} else {
return flatArray.concat(current);
}
}, []);
}
var arr = [1, 2, 3, 4, [5, 6, [7, 8]], [9]];
console.log(flattenArray(arr)); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
Yöntem reduceiki bağımsız değişken alır: bir geri arama işlevi ve toplayıcı için bir başlangıç değeri. Bu durumda akümülatör, giriş dizisinin düzleştirilmiş sürümünü oluşturmak için kullanılacak boş bir dizidir.
Geri arama işlevi iki bağımsız değişken alır: işlenmekte olan geçerli değer (sırayla giriş dizisinin her bir öğesi olacak) ve akümülatörün geçerli değeri.
Geri arama işlevinde, geçerli değerin bir dizi olup olmadığını kullanarak kontrol ederiz Array.isArray. Bu bir diziyse, flattenArrayiç içe diziyi düzleştirmek için yinelemeli olarak çağırırız ve ardından yöntemi kullanarak düzleştirilmiş diziyi akümülatörle birleştiririz concat.
Geçerli değer bir dizi değilse, onu kullanarak akümülatörle birleştiririz concat.
Son olarak, reduceyöntem, giriş dizisinin düzleştirilmiş versiyonu olacak akümülatörün son değerini döndürür.
Bu kodla, öncekiyle aynı çıktıyı almalısınız: [1, 2, 3, 4, 5, 6, 7, 8, 9].
Javascript'te kodlama hakkında daha fazla şey öğrenmekle ilgileniyorsanız, daha fazla kod parçacığı ve örnek için beni takip ettiğinizden emin olun. Dilde nasıl ustalaşacağınıza ve bir geliştirici olarak becerilerinizi nasıl geliştireceğinize dair değerli bilgiler ve ipuçları paylaşıyor olacağım. Bu nedenle, daha fazla güncelleme için bizi izlemeye devam edin ve birlikte öğrenmeye devam edelim.
Okuduğunuz için teşekkürler. İyi öğrenmeler
Python'da Threading ve Multiprocessing, JAVA'da Bir Veritabanına Erişmenin En Kolay Yolu Açıklandı En Sık Sorulan Java8 Akışına Dayalı Röportaj Sorusu — Bölüm 1 Apache Maven — Kısaca
![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































