Saya ada objek:
myObject = { 'a': 1, 'b': 2, 'c': 3 }
Saya sedang mencari kaedah asli yang serupa denganArray.prototype.map
yang boleh digunakan seperti ini:
newObject = myObject.map(function (value, label) { return value * value; }); // newObject is now { 'a': 1, 'b': 4, 'c': 9 }
Adakah JavaScript mempunyai fungsimap
untuk objek sedemikian? (Saya mahukan ini untuk Node.JS, jadi saya tidak mengambil berat tentang isu merentas penyemak imbas.)
Bagaimana pula dengan menulis satu ayat setiap baris menggunakan JSES10 / ES2019?
Gunakan
Object.entries( )
和Object.fromEntries():Tulis perkara yang sama sebagai fungsi:
Fungsi ini juga menggunakan rekursi ke objek bersarang segi empat sama:
DalamES7/ES2016, anda tidak boleh menggunakan
Objects.fromEntries
,但您可以使用Object.assign
denganpengendali sebarandannama kunci yang dikiraSintaks:ES6 / ES2015tidak dibenarkan
Object.entries
,但您可以使用Object.keys
ditukar kepada:ES6 juga memperkenalkan gelung
for...of
, membenarkan gaya yang lebih penting:array.reduce()
Anda juga boleh menggunakanreduceuntuk ini:
Sifat warisan dan rantai prototaip:
Dalam beberapa kes yang jarang berlaku, anda mungkin perlu memetakan objekkelasyang ada dalamrantai prototaipnya. Dalam kes ini,
tidak akan berfungsi kerana fungsi ini tidak mengandungi rantai prototaip.Object.keys()
Object.keys()
和Object.entries()
danObject.entry()
Jika anda perlu memetakan sifatwarisan
untuk (masukkan myObj) {...}
. Berikut adalah contoh situasi sedemikian: Tetapi tolong bantu saya dan elakkanwarisan. :-)for (key in myObj) {...}
, anda boleh menggunakanTidak sampai
Object
对象的本机map
, tetapi bagaimana pula dengan ini: