JavaScript Array Metodları:flat() & join() & toString() & toLocaleString()
flat() Metodu
flat: dizi içerisindeki alt dizileri istenilen derinlik seviyesine kadar olanları düşürüp, yeni bir dizi üretir. Orjinal dizi üzeriyi değiştirmez. Varsayılan derinlik seviyesi 1'dir.
let dizi1 = [0,1,2,3,[4,5],5,6,[7,[8,9]]]
let dizi2 = dizi1.flat()
dizi2 // [0,1,2,3,4,5,5,6,7,[8,9]]
let dizi3 = dizi1.flat(2)
dizi3 // [0,1,2,3,4,5,5,6,7,8,9]
join() Metodu
join: dizi elemanların parçalara ayırıp, istenilen ayırıcı ifade ile birleştirerek bir string oluşturur. Dizi içerisindeki alt dizeleri de işleme alır. Varsayılan ayırıcı ifadesi virgüldür.
let meyveler = ["Elma","Armut","Muz","Portakal"]
meyveler.join() // "Elma,Armut,Muz,Portakal"
meyveler.join(" - ") // Elma - Armut - Muz - Portakal
Dizi elamanları içerisinde: null ve undefined değerleri, boş string ifadeye çevirilir.
let karma = ["A", null, "B", undefined, "C"]
karma.join() // A,,B,,C
toString() Metodu
toString: dizi elemanlarını virgülle birleştirip, bir string ifade oluşturur. Herhangi bir parametre almaz.
let metin = ["JavaScript","Programlama","Dili"]
metin.toString() // "JavaScript,Programlama,Dili
let sayilar = [10,25,50]
sayilar // "10,25,50" -> string ifade
toLocaleString() Metodu
toLocaleString: dizi elamanlarını yerel ayarlara uygun olacak şekilde string ifadeye dönüştürür. İsteğe bağlı 2 parametre almaktadır.
locales
Dizinin elemanlarının biçimlendirilmesi için kullanılacak yerel ayarı belirler. Türkçe için: "tr-TR", Almanca için: "de-DE", Amerika için: "en-US" gibi argümanları alır.
let sayi = [12.25]
sayi.toLocaleString("tr-TR") // "12,15" -> Türkiye'de ondalıklı sayılar virgülle ifade edilir
sayi.toLocaleString("en-US") // "12.25" -> Amerika'da ondalıklı sayılar noktayla ifade edilir
options
biçimlendirilme için çeşitli seçenekler sunar. Sayılar, tarihler, para birimleri gibi farklı türde özelliklerin formatlanmasını sağlar.
- style
- decimal: Sayıları standart formata çevirir.
- currency: Para birimine uygun formaya çevirir.
- percent: Yüzde olarak formatlar.
let paralar = [150.55, 300.25]
paralar.toLocaleString("tr-TR", { style: "currency", currency: "TRY" }) // "₺150,55, ₺300,25"
paralar.toLocaleString("en-US", { style: "currency", currency: "USD" }) // "$150.55, $300.25"
paralar.toLocaleString("de-DE", { style: "currency", currency: "EUR" }) // 150,55 €, 300,25 €
let yuzde = [0.25, 0.88]
yuzde.toLocaleString("tr-TR", { style: "percent" }) // "%25, %88"
yuzde.toLocaleString("en-US", { style: "percent" }) // "25%, 88%"
- currencyDisplay
- symbol: Para biriminin sembolünü verir.
- narrowSymbol: Dar sembol kullanır.
- code: Para biriminin kodunu verir.
- name: Para biriminin adını verir.
paralar.toLocaleString("tr-TR", { style: "currency", currency: "TRY", currencyDisplay: "name" })
// ₺150,55 Türk lirası, ₺300,25 Türk lirası
paralar.toLocaleString("en-US", { style: "currency", currency: "USD", currencyDisplay: "name" })
// 150.55 US dollars, 300.25 US dollars
- minimumFractionDigits & maximumFractionDigits
- minimumFractionDigits: En az kaç basamağın kullanılacağını belirtir.
- maximumFractionDigits: En fazla kaç basamağın kullanılacağını belirtir.
let sayilar = [1745.25, 250.7]
sayilar.toLocaleString("tr-TR", { minimumFractionDigits: 3, maximumFractionDigits: 3 })
// 1.745,250, 250,700
sayilar.toLocaleString("en-US", { minimumFractionDigits: 3, maximumFractionDigits: 3 })
// "1,745.250, 250.700"
- useGrouping: sayıların binlik gruplara ayırılıp / ayrılmayacağını belirler.
let sayi = [1234567.89]
sayi.toLocaleString("tr-TR", { useGrouping: true }) // "1.234.567,89"
sayi.toLocaleString("tr-TR", { useGrouping: false }) // "1234567,89"
- Birimleri sayıların yanında göstermek için kullanılır. Metre, kilometre, celsius, fahrenheit gibi birimler gösterilebilir.
let uzakliklar = [150, 165.85]
uzakliklar.toLocaleString("tr-TR", { style: "unit", unit: "kilometer" }) // "150 km, 165.85 km"
- signDisplay
- auto: Sadece negatif işaretler gösterilir.
- always: Negatif ve pozitif işaretler gösterilir. Sıfır pozitif gösterilir.
- exceptZero: Sadece negatif ve pozitif işaretler gösterilir.
- never: Hiçbir işaret gösterilmez.
let degerler = [-123.45, 0, 54.321]
degerler.toLocaleString("tr-TR", { signDisplay: "auto" }) // "-123,45, 0, 54,321"
degerler.toLocaleString("tr-TR", { signDisplay: "always" }) // "-123,45, +0 ,+54,321"
degerler.toLocaleString("tr-TR", { signDisplay: "exceptZero" }) // "-123,45, 0, +54,321"
degerler.toLocaleString("tr-TR", { signDisplay: "never" }) // "123,45, 0, 54,321"