บางครั้งเวลาทำงานกับ dictionary เราต้องการแค่คีย์ของ dictionary เป็น array สำหรับงานบางอย่าง เราสามารถดึง properties ของ object ได้ง่ายด้วย Object.keys เราจะใช้เมธอดนี้เพื่อคืนค่าคีย์จาก container object
ตัวอย่างโค้ด
keys() {
return Object.keys(this.container);
}
ทดสอบการทำงานได้ดังนี้:
ตัวอย่างการใช้งาน
const myMap = new MyMap();
myMap.put("key1", "value1");
myMap.put("key2", "value2");
console.log(myMap.keys());
ผลลัพธ์
จะได้ผลลัพธ์ดังนี้:
[ 'key1', 'key2' ]
ใน ES6 Map มีเมธอดเดียวกันให้ใช้งาน สังเกตว่ามันคืนค่า MapIterator object ซึ่งคุณสามารถแปลงเป็น array หรือใช้เหมือน iterator ธรรมดาได้ เช่น:
ตัวอย่าง
const myMap = new Map([ ["key1", "value1"], ["key2", "value2"] ]); console.log(myMap.keys())
ผลลัพธ์
จะได้ผลลัพธ์ดังนี้:
MapIterator { 'key1', 'key2' }
เช่นเดียวกัน กรณีที่ต้องการแค่ค่าของ dictionary เราต้องวนลูปผ่าน dictionary และรวบรวมค่า เช่น:
ตัวอย่างโค้ด
values() {
let values = [];
for (let key in this.container) {
values.push(this.container[key]);
}
return values;
}
ทดสอบเมธอดเหล่านี้ได้ดังนี้:
ตัวอย่างการใช้งาน
const myMap = new MyMap();
myMap.put("key1", "value1");
myMap.put("key2", "value2");
console.log(myMap.values());
ผลลัพธ์
จะได้ผลลัพธ์ดังนี้:
[ 'value1', 'value2' ]
ใน ES6 Map ก็มีเมธอด values เหมือน keys ใช้งานได้เช่นกัน