Javascript ile iç içe arrayi tek bir array'e dönüştürmek

Javascript ile iç içe arrayi tek bir array'e dönüştürmek

Elinizde iç içe birden fazla array var ve iç içe döngüler yapmak istemiyorsanız, çok basit bir fonksiyon ile bu sorundan kurtulabilirsiniz.

Array.protoype olarak ekleyeceğimiz kod.

Version 1 - Sonsuz derinliği dönüştürebilir

Array.prototype.rflat = function () {
    var newArray = [];
    this.forEach(e => {
        if (Array.isArray(e)) {
            newArray.push(...e.rflat());
        } else {
            newArray.push(e);
        }
    })
    return newArray;
}

var arr = ["deneme", "test", "a", "b", "c",["d","e","f",["rec","rec3"]]];
arr.rflat();

// Çıktısı ["deneme", "test", "a", "b", "c", "d", "e", "f", "rec", "rec3"]

Version 2 - Tek derinliği algılayabilir

return this.reduce(function(a, b){
        if(typeof a == "array") return a.rflat()
     return a.concat(b);
}, []);

var arr = ["deneme", "test", "a", "b", "c",["d","e","f"]]; // İkinci derinliği algılamayacaktır
arr.rflat();

//Çıktısı ["deneme", "test", "a", "b", "c", "d", "e", "f"]

Comments


Yorum yazın







Tarih: