字典
特点
:
- 字典存储的是键值对,主要特点是一一对应。
- 在字典中 key 是不能重复且无序的,而 Value 可以重复。
字典常见的操作
set(key,value)
向字典中添加新元素。remove(key)
通过使用键值来从字典中移除键值对应的数据值。has(key)
如果某个键值存在于这个字典中,则返回true
,反之则返回false
。get(key)
通过键值查找特定的数值并返回。clear()
将这个字典中的所有元素全部删除。size()
返回字典所包含元素的数量。与数组的length
属性类似。keys()
将字典所包含的所有键名以数组形式返回。values()
将字典所包含的所有数值以数组形式返回。
代码封装
class Dictonary {
constructor() {
this.items = {};
};
//- `set(key,value)` 向字典中添加新元素。
set(key, value) {
this.items[key] = value;
};
//- `remove(key)` 通过使用键值来从字典中移除键值对应的数据值。
remove(key) {
delete this.items[key];
};
//- `has(key)` 如果某个键值存在于这个字典中,则返回 `true`,反之则返回 `false`。
has(key) {
return this.items.hasOwnProperty(key);
};
//- `get(key)` 通过键值查找特定的数值并返回。
get(key) {
if (this.has(key)) {
return this.items[key];
} else {
return null;
}
}
//- `clear()` 将这个字典中的所有元素全部删除。
clear() {
this.items = {};
}
///- `size()` 返回字典所包含元素的数量。与数组的 `length` 属性类似。
size() {
return Object.keys(this.items).length;
}
//- `keys()` 将字典所包含的所有键名以数组形式返回。
keys() {
return Object.keys(this.items)
}
//- `values()` 将字典所包含的所有数值以数组形式返回。
values() {
return Object.values(this.items);
}
}
测试代码
const dictonary = new Dictonary();
dictonary.set(1, { name: '小付01' });
dictonary.set(2, { name: '小付02' });//
dictonary.set(3, { name: '小付03' });
dictonary.set(4, { name: '小付04' });
console.log(dictonary.has(1));// true
console.log(dictonary.get(1));// { name: '小付01' }
console.log(dictonary.keys());// [ '1', '2', '3', '4' ]
console.log(dictonary.values());
// [
// { name: '小付01' },
// { name: '小付02' },
// { name: '小付03' },
// { name: '小付04' }
// ]
console.log(dictonary.size());// 4