Saya memiliki array seperti ini:
arr = []
arr[0] = "ab"
arr[1] = "abcdefgh"
arr[2] = "abcd"
Setelah mengurutkan, larik keluaran harus:
arr[0] = "abcdefgh"
arr[1] = "abcd"
arr[2] = "ab"
Maksud saya, saya ingin dalam urutan menurun dari panjang setiap elemen.
javascript
arrays
string
sorting
ramesh kumar
sumber
sumber
sort
cukup lurus ke depan, di mana Anda mengalami kesulitan?Jawaban:
Anda dapat menggunakan
Array.sort
metode untuk mengurutkan array. Fungsi pengurutan yang mempertimbangkan panjang string sebagai kriteria pengurutan dapat digunakan sebagai berikut:Catatan: mengurutkan
["a", "b", "c"]
berdasarkan panjang string tidak dijamin akan kembali["a", "b", "c"]
. Menurut spesifikasinya :Jika tujuannya adalah untuk mengurutkan berdasarkan panjang maka berdasarkan urutan kamus Anda harus menentukan kriteria tambahan:
sumber
arr.sort((a, b) => b.length - a.length)
Kita bisa menggunakan metode Array.sort untuk mengurutkan array ini.
Solusi ES5
Solusi ES6
Perhatian: tidak semua browser dapat memahami kode ES6!
Di ES6 kita bisa menggunakan ekspresi fungsi panah .
sumber
Berikut ini jenisnya, tergantung pada panjang string dengan javascript seperti yang Anda minta:
[solusi masalah menurut jenis gelembung] [1]
[1]: http://jsfiddle.net/sssonline2/vcme3/2/
enter code here
sumber
Berdasarkan jawaban Salman, saya telah menulis sebuah fungsi kecil untuk merangkumnya:
kemudian sebut saja dengan
Perhatikan bahwa sayangnya, fungsi tidak dapat / tidak boleh ditambahkan ke prototipe Array, seperti yang dijelaskan di halaman ini .
Selain itu, ia memodifikasi array yang diteruskan sebagai parameter dan tidak mengembalikan apa pun. Ini akan memaksa duplikasi array dan tidak akan bagus untuk array besar. Jika seseorang memiliki ide yang lebih baik, tolong beri komentar!
sumber
Saya mengadaptasi jawaban @ shareef agar ringkas. Saya menggunakan,
.sort(function(arg1, arg2) { return arg1.length - arg2.length })
sumber
sumber
Kode ini harus melakukan trik:
sumber
Fungsi anonim yang Anda berikan untuk mengurutkan memberi tahu cara mengurutkan array yang diberikan. Semoga ini membantu. Saya tahu ini membingungkan tetapi Anda dapat memberi tahu fungsi sortir cara mengurutkan elemen array dengan meneruskan fungsi sebagai parameter yang memberi tahu itu apa yang harus dilakukan
sumber