Saya perlu mendapatkan elemen terakhir dari array dengan banyak pemisah. Pemisah adalah koma dan ruang. Jika tidak ada pemisah, ia harus mengembalikan string asli.
Jika stringnya adalah "bagaimana, apa yang kamu lakukan, hari ini?" itu harus kembali "hari ini?"
Jika inputnya adalah "halo" maka outputnya harus "halo".
Bagaimana saya bisa melakukan ini dalam JavaScript?
javascript
split
JJJ
sumber
sumber
pieces.pop()
untuk mendapatkan item terakhir dari array Anda.var last = str.split(/[\s,]+/).pop()
Ada satu garis untuk semuanya. :)
sumber
split
panggilan, itu tidak disimpan. String asli tidak diubah dengan memunculkan item dari array.{1,}
, yaitu[, ]+
cocok dengan satu atau lebih karakter dalam set (koma dan spasi). Ini berguna ketika Anda ingin semua kata dari string, tetapi ketika Anda hanya ingin kata terakhir itu tidak membuat perbedaan fungsional, itu hanya mengurangi overhead karena akan ada lebih sedikit string dalam array.sumber
.split(',').pop()
bekerja untuk elemen terakhir pada string yang dipisahkan koma. Katakan saja karena aku disesatkan oleh jawaban Guffa yang luar biasa, aku mengabaikannya karena tidak butuh regex dan berpikir triknya ada di sana! : PAnda juga dapat mempertimbangkan untuk membalikkan array dan mengambil elemen pertama. Dengan begitu Anda tidak perlu tahu tentang panjangnya, tetapi itu tidak membawa manfaat nyata dan kerugian bahwa operasi sebaliknya mungkin lebih lama dengan array besar:
Meskipun mudah, tetapi juga memodifikasi array asli yang dimaksud. Itu mungkin atau mungkin tidak menjadi masalah.
Referensi: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse
Mungkin Anda mungkin ingin menggunakan ini:
sumber
.pop()
Metode adalah jawaban terbaik yang pernah kulihat sejauh ini. Itu sebabnya itu dibuat!Yang terbaik dan favorit saya.
sumber
Dan jika Anda tidak ingin membuat array ...
Rincian dalam bahasa Inggris adalah:
Pengganti hanya mengatakan ganti seluruh string dengan barang setelah pemisah terakhir.
Jadi Anda bisa melihat bagaimana ini bisa diterapkan secara umum. Perhatikan string asli tidak dimodifikasi.
sumber
sumber
Anda dapat mengakses indeks array secara langsung:
var csv = 'zero,one,two,three'; csv.split(',')[0]; //result: zero csv.split(',')[3]; //result: three
sumber