function getServiceTypeName(code) {
return serviceTypeList.find(val => val.name === code);
}
Malangnya, IE tidak menyokong find(), jadi terdapat Polyfill berhampiran penghujung dokumentasi MDN.
Jika anda menggunakan peta untuk melaksanakannya, anda tidak perlu menggunakan Peta ES6, kerana objek asli menyokong kekunci jenis rentetan, tetapi tidak kira bagaimana ia dilaksanakan, penukaran peta ini seharusnya getServiceTypeName 之外进行。因为转换的过程比你写的 for ... of lebih memakan masa.
function toMap(list) {
return list.reduce((map, item) => {
map.set(item.name, item);
return map;
}, new Map());
}
serviceTypeMap = toMap(serviceTypeList);
function getServiceTypeName(code) {
return serviceTypeMap.get(code);
}
Mula-mula tukarkannya menjadi struktur peta dengan pasangan nilai kunci nama:Id. Kemudian anda boleh terus menggunakan nama untuk mendapatkan id yang sepadan. Anda langsung tidak faham maksud kaedah yang dia beritahu.
Mula-mula tukar tatasusunan jenis kepada struktur peta, dan kemudian dapatkannya melalui map.get(kod). Tidak perlu merentasi.
Apakah penyelesaian untuk menukar kepada peta perlu mengambil kira kos penukaran itu sendiri
Pelaksanaan peta yang disertakan dengan beberapa bahasa menggunakan tatasusunan apabila koleksi kecil, menghapuskan keperluan untuk operasi kod cincang dan meningkatkan kecekapan
Gunakan
filter()
确实可以一句话搞定,但是,效率不高。其实可以用find
(rujuk MDN)Malangnya, IE tidak menyokong
find()
, jadi terdapat Polyfill berhampiran penghujung dokumentasi MDN.Jika anda menggunakan peta untuk melaksanakannya, anda tidak perlu menggunakan Peta ES6, kerana objek asli menyokong kekunci jenis rentetan, tetapi tidak kira bagaimana ia dilaksanakan, penukaran peta ini seharusnya
getServiceTypeName
之外进行。因为转换的过程比你写的for ... of
lebih memakan masa.objToStrMap hanya perlu dimulakan sekali Anda memulakannya setiap kali dalam gelung, yang akan menjadi lebih perlahan.
Arahan tambahan
...
Mula-mula tukarkannya menjadi struktur peta dengan pasangan nilai kunci nama:Id. Kemudian anda boleh terus menggunakan nama untuk mendapatkan id yang sepadan. Anda langsung tidak faham maksud kaedah yang dia beritahu.
Mula-mula tukar tatasusunan jenis kepada struktur peta, dan kemudian dapatkannya melalui map.get(kod). Tidak perlu merentasi.
Dalam fungsi
, anda boleh menulis seperti ini
let result = serviceTypeList.map((val)=> val.typeId === code);
retVal = result.name;
Hanya separuh baris kod
Kendalian penapisan dalam gelung tidak perlahan.
Apakah penyelesaian untuk menukar kepada peta perlu mengambil kira kos penukaran itu sendiri
Pelaksanaan peta yang disertakan dengan beberapa bahasa menggunakan tatasusunan apabila koleksi kecil, menghapuskan keperluan untuk operasi kod cincang dan meningkatkan kecekapan