Đôi khi khi làm việc với Dictionary, chúng ta chỉ cần các khóa của Dictionary dưới dạng mảng cho một số tác vụ. Chúng ta có thể dễ dàng lấy các thuộc tính của object bằng Object.keys. Chúng ta sẽ dùng phương thức này để trả về các khóa từ container object.
Ví dụ
keys() {
return Object.keys(this.container);
}
Bạn có thể kiểm tra bằng cách sau:
Ví dụ
const myMap = new MyMap();
myMap.put("key1", "value1");
myMap.put("key2", "value2");
console.log(myMap.keys());
Kết quả
Điều này sẽ cho ra kết quả:
[ 'key1', 'key2' ]
Trong ES6 Map, phương thức tương tự cũng có sẵn. Lưu ý rằng nó trả về một đối tượng MapIterator, có thể chuyển thành mảng hoặc dùng như iterator bình thường. Ví dụ:
Ví dụ
const myMap = new Map([ ["key1", "value1"], ["key2", "value2"] ]); console.log(myMap.keys())
Kết quả
Điều này sẽ cho ra kết quả:
MapIterator { 'key1', 'key2' }
Tương tự, có trường hợp chỉ cần các giá trị của Dictionary. Đối với các trường hợp này, cần lặp qua Dictionary và thu thập các giá trị. Ví dụ:
Ví dụ
values() {
let values = [];
for (let key in this.container) {
values.push(this.container[key]);
}
return values;
}
Bạn có thể kiểm tra các phương thức này bằng cách sau:
Ví dụ
const myMap = new MyMap();
myMap.put("key1", "value1");
myMap.put("key2", "value2");
console.log(myMap.values());
Kết quả
Điều này sẽ cho ra kết quả:
[ 'value1', 'value2' ]
Lại nữa trong ES6 Map, phương thức này cũng có sẵn giống như keys và có thể dùng tương tự.