Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

Javascript Map vs Object — อะไรและเมื่อไหร่?


ตามเอกสารของ MDN

ออบเจ็กต์แผนที่เก็บคู่คีย์-ค่าและจดจำลำดับการแทรกเดิมของคีย์ ค่าใดๆ (ทั้งอ็อบเจ็กต์และค่าดั้งเดิม) สามารถใช้เป็นคีย์หรือค่าก็ได้

สิ่งสำคัญที่ควรทราบในที่นี้คือ วัตถุสามารถใช้เป็นกุญแจในแผนที่ได้ นี่ไม่ใช่กรณีของวัตถุ JavaScript ออบเจ็กต์ JS อนุญาตให้ใช้ primitives เป็นคีย์เท่านั้น

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

ตัวอย่าง

ตัวอย่างการใช้แผนที่ -

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