Saya mencoba mengurutkan array dengan nilai 'nama' (menggunakan Lodash). Saya menggunakan dokumen Lodash untuk membuat solusi di bawah ini namun .orderBy sepertinya tidak berpengaruh sama sekali. Adakah yang bisa menjelaskan cara yang benar untuk mengurutkan array?
Chars Array
[
{
"id":25,
"name":"Anakin Skywalker",
"createdAt":"2017-04-12T12:48:55.000Z",
"updatedAt":"2017-04-12T12:48:55.000Z"
},
{
"id":1,
"name":"Luke Skywalker",
"createdAt":"2017-04-12T11:25:03.000Z",
"updatedAt":"2017-04-12T11:25:03.000Z"
}
]
Kode Fungsi
var chars = this.state.characters;
_.orderBy(chars, 'name', 'asc'); // Use Lodash to sort array by 'name'
this.setState({characters: chars})
'name', 'asc'
orderBy
tidak mengubah larik masukan" ... "orderBy
mengubah larik pada tempatnya." Kata-kata yang dimaksudkan mungkin "tidak pada tempatnya" atau "tidak pada tempatnya". Lihat: en.wikipedia.org/wiki/In-place_algorithm['asc']
itu tidak memerintahkan ascending, untuk mencapai itu caranya adalah dengan menambahkanreverse()
setelahorderBy
(setidaknya dalam versi 4.17.15)Anda dapat menggunakan lodash sortBy ( https://lodash.com/docs/4.17.4#sortBy ).
Kode Anda bisa seperti:
sumber
_.sortBy(myArray, 'name')
orderBy
, Anda tidak dapat mengirimkan jenis pengurutansortBy
, ia selalu mengurutkan berdasarkan urutan naik.