Saya mempunyai tatasusunan objek Saya mahu ia disusun mengikut susunan yang saya nyatakan Seperti berikut, ia disusun mengikut susunan nama yang saya nyatakan sebarang lodash atau kaedah lain? Bolehkah pakej terkenal daripada tiga pihak mencapai kesan berikut, atau adakah cara lain yang lebih cekap dan mudah untuk menulisnya?
var arr = [ { name:'小麦', phone:'112233' }, { name:'绿绿', phone:'4445566' }, { name:'增增', phone:'321321' }, { name:'弱弱', phone:'123123' } ]; //希望达到的顺序 (我已知所有元素) var order = { '增增':0, '弱弱':1, '绿绿':2, '小麦':3 }; var newOrderedArr = []; arr.forEach((element)=>{ newOrderedArr[order[element.name]] = element; }); console.log(newOrderedArr);
Hasil konsol adalah seperti berikut
[ { name: '增增', phone: '321321' }, { name: '弱弱', phone: '123123' }, { name: '绿绿', phone: '4445566' }, { name: '小麦', phone: '112233' } ]
Jika
orders
里面是按0 ~ n
mempunyai nilai berterusan, maka kaedah anda sudah sangat, sangat pantas, dan kaedah perpustakaan lain tidak dapat mencapai kelajuan ini (kerana mereka akan mempertimbangkan situasi tidak berterusan)Jika tidak berterusan, anda boleh menggunakan sort
Atau anda boleh menggunakan kaedah anda dan menambah penapis
Tambahan: Untuk kes nombor siri tidak berturut-turut, perbandingan tanpa pengisihan adalah seperti yang ditunjukkan dalam rajah
Idea ini nampaknya sangat pantas. Dari perspektif kemudahan penggunaan, indeks pesanan boleh dijana supaya tatasusunan nama boleh dimasukkan setiap kali.
Tetapi tidak jika ada nama pendua. Anda perlu mengekalkan rekod tatasusunan untuk setiap nama dan akhirnya menggabungkannya