Ada metode bagus untuk mengurutkan array objek berdasarkan beberapa properti:
var data = _.sortBy(array_of_objects, ['type', 'name']);
Namun itu hanya untuk penyortiran naik. Apakah ada cara yang mudah untuk menentukan arah per kolom? Misalnya
var data = _.sortBy(array_of_objects, [{'type': 'asc'}, {'name': 'desc'}]);
javascript
sorting
lodash
nhaa123
sumber
sumber
_.sortByOrder is not a function
versi terbaru dari Lodash., ['asc', 'desc']
ini semakin diabaikan bagi saya dengan [email protected]. Semuanya hanya diurutkan naik._.sortBy
. Coba_.orderBy
saja. Semoga ini membantu.Anda selalu bisa menggunakan
Array.prototype.reverse()
sumber
Perlu dicatat bahwa jika Anda ingin mengurutkan properti tertentu turun, Anda tidak ingin hanya menambahkan .reverse () di akhir, karena ini akan membuat semua jenis turun.
Untuk membuat jenis tertentu menurun, rantai jenis Anda dari paling tidak signifikan ke yang paling signifikan, memanggil .reverse () setelah setiap jenis yang Anda ingin turun.
Karena sortasi _ adalah sortir yang stabil, Anda dapat dengan aman memilah dan membalikkan sortir karena jika dua item memiliki nilai yang sama untuk sebuah properti, pesanannya dipertahankan.
Informasi lebih lanjut
sumber
Bidang dalam & multi bidang & berbagai arah pemesanan Lodash> 4
sumber
Tidak. Anda tidak dapat menentukan urutan pengurutan selain oleh fungsi panggilan balik yang membalikkan nilai. Bahkan ini tidak mungkin untuk jenis multicolumn.
Anda mungkin bisa melakukannya
Untuk yang lainnya, Anda harus menggunakan yang asli
.sort()
dengan fungsi perbandingan khusus:sumber
Dalam dokumentasi versi 4.11.x, mengatakan: `" Metode ini seperti _.sortBy kecuali bahwa itu memungkinkan menentukan urutan pesanan dari iterate untuk mengurutkan berdasarkan. Jika pesanan tidak ditentukan, semua nilai diurutkan dalam urutan naik. , tentukan urutan "desc" untuk turun atau "asc" untuk urutan sortir dari nilai yang sesuai. " (sumber https://lodash.com/docs/4.17.10#orderBy )
let sorted = _.orderBy(this.items, ['fieldFoo', 'fieldBar'], ['asc', 'desc'])
sumber
_.sortByOrder
?Anda juga dapat mencoba ini:
sumber