Cara mengonversi array ke daftar yang dapat dibaca manusia di JavaScript – Amit Merchant – Blog di PHP, JavaScript, dan lainnya

Seringkali, Anda mungkin berakhir dalam situasi di mana Anda memiliki array dan Anda hanya ingin mengempiskan seluruh konten array dalam bentuk yang dapat dibaca manusia. Atau lebih khusus dalam format seperti daftar.

Misalnya, katakanlah kita memiliki array berikut misalnya.

const books = [
    'Harry Potter',
    'Bhagavad Gita',
    'The Alchemist',
    'Birthday Girl'
]

Sekarang, saya ingin mengempiskan array ini dalam bentuk berikut.

…Harry Potter, Bhagavad Gita, Sang Alkemis, dan Gadis Ulang Tahun.

Bagaimana Anda akan mencapai ini? Yah, pada awalnya Anda mungkin ingin menggunakan loop untuk melakukannya, tetapi ada cara yang lebih baik untuk melakukannya di JavaScript.

Itu Intl.ListFormat obyek

Ada objek ListFormat ini yang berada di bawah API internasionalisasi Intl yang dapat digunakan untuk melakukan apa yang saya jelaskan di atas.

Jadi, jika kita menginginkan output yang diinginkan dari array contoh kita, kita bisa melakukannya seperti itu.

const books = [
    'Harry Potter',
    'Bhagavad Gita',
    'The Alchemist',
    'Birthday Girl'
]

const listFormatter = new Intl.ListFormat('en', {
    style: 'long',
    type: 'conjunction'
})

console.log(listFormatter.format(books));
// Harry Potter, Bhagavad Gita, The Alchemist, and Birthday Girl

Seperti yang Anda tahu, kita dapat mencapai ini dalam dua bagian.

Bagian pertama adalah membuat formatter menggunakan Intl.ListFormat metode. Metode ini menerima dua parameter opsional.

  • locales – String dengan tag bahasa BCP 47, atau larik string tersebut.
  • options – Objek dengan beberapa atau semua properti berikut:
    • localeMatcher – Algoritma pencocokan lokal untuk digunakan. Nilai yang mungkin adalah lookup dan best fit; defaultnya adalah best fit.
    • type – Format pesan keluaran. Nilai yang mungkin adalah conjunction yang merupakan singkatan dari daftar berbasis “dan” (default, misalnya, “A, B, dan C”), atau disjunction yang merupakan singkatan dari daftar berbasis “atau” (misalnya, “A, B, atau C”). unit singkatan dari daftar nilai dengan satuan (misalnya, “5 pon, 12 ons”).
    • style – Panjang pesan yang diformat. Nilai yang mungkin adalah: long (default, misalnya, “A, B, dan C”); short (misalnya, “A, B, C”), atau narrow (misalnya, “ABC”). Ketika gaya adalah short atau narrow, unit adalah satu-satunya nilai yang diizinkan untuk opsi tipe.

Setelah formatter dibuat, sekarang kita dapat dengan mudah membungkus array menggunakan using format metode lebih lanjut untuk memformat array ke format yang ditentukan.

Berikut adalah beberapa contoh penggunaan Intl.ListFormat.

const books = [
    'Harry Potter',
    'Bhagavad Gita',
    'The Alchemist',
    'Birthday Girl'
]

const listFormatter = new Intl.ListFormat('en-GB', {
    style: 'short',
    type: 'disjunction'
})

console.log(listFormatter.format(books));
// Harry Potter, Bhagavad Gita, The Alchemist, or Birthday Girl

const listFormatter = new Intl.ListFormat('en-GB', {
    style: 'narrow',
    type: 'unit'
})

console.log(listFormatter.format(books));
// Harry Potter Bhagavad Gita The Alchemist Birthday Girl

Itu Intl.ListFormat objek didukung di semua browser utama saat ini. Jadi, cukup aman untuk digunakan dalam produksi!