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

เมธอด keys() และ values() ใน JavaScript Dictionary


บางครั้งเวลาทำงานกับ 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 ใช้งานได้เช่นกัน