Saya ada objek:
myObject = { 'a': 1, 'b': 2, 'c': 3 }
Saya sedang mencari kaedah asli yang serupa dengan Array.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 fungsi map
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 JS ES10 / ES2019?
Gunakan
Object.entries( )
和 Object.fromEntries():Tulis perkara yang sama sebagai fungsi:
Fungsi ini juga menggunakan rekursi ke objek bersarang segi empat sama:
Dalam ES7/ES2016, anda tidak boleh menggunakan
Objects.fromEntries
,但您可以使用Object.assign
dengan pengendali sebaran dan nama kunci yang dikiraSintaks:ES6 / ES2015 tidak dibenarkan
Object.entries
,但您可以使用Object.keys
ditukar kepada:ES6 juga memperkenalkan gelung
for...of
, membenarkan gaya yang lebih penting:array.reduce()
Anda juga boleh menggunakan reduce untuk ini:
Sifat warisan dan rantai prototaip:
Dalam beberapa kes yang jarang berlaku, anda mungkin perlu memetakan objek kelas yang ada dalam rantai 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 sifat warisanuntuk (masukkan myObj) {...}
.for (key in myObj) {...}
, anda boleh menggunakanTidak sampai
Object
对象的本机map
, tetapi bagaimana pula dengan ini: