Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

JavaScript Map vs Object — คืออะไรและเมื่อไหร่ควรใช้?


ตามเอกสาร MDN

ออบเจ็กต์ Map เก็บคู่ Key-Value และจำลำดับการแทรกของ Keys ไว้ ค่าใดๆ (ทั้ง Objects และ Primitive Values) สามารถใช้เป็น Key หรือ Value ได้

สิ่งสำคัญคือ Objects สามารถใช้เป็น Keys ใน Maps ได้ ซึ่ง JavaScript Objects ทำไม่ได้ JS Objects อนุญาตให้ใช้เฉพาะ Primitives เป็น Keys เท่านั้น

ฟีเจอร์อีกอย่างที่ทำให้มีประโยชน์ในบางสถานการณ์คือมัน Iterable และ Iterable ตามลำดับการแทรก ดังนั้นในกรณีที่คุณต้องการรักษาลำดับของ Keys และมี Value ผูกมาด้วย Map สามารถใช้ได้

ตัวอย่าง

ตัวอย่างการใช้งาน Maps

const myMap = new Map(); const keyString = 'a string', const keyObj = {}, const keyFunc = function() {}; // setting the values with all kinds of keys myMap.set(keyString, "String Val"); myMap.set(keyObj, 'Object val'); myMap.set(keyFunc, 'function val'); console.log(myMap.size); console.log(myMap.get(keyString));

ผลลัพธ์

จะได้ผลลัพธ์ดังนี้

3 String Val