什么是字典
字典的主要操作
代码实现
const assert = require("assert");
class Dictionary {
constructor() {
this.items = {};
}
set(key, value) {
this.items[key] = value;
}
remove(key) {
if (!this.has(key)) {
return false;
}
delete this.items[key];
return true;
}
has(key) {
return this.items.hasOwnProperty(key);
}
get(key) {
return this.has(key) ? this.items[key] : undefined;
}
clear() {
this.items = {};
}
size() {
return Object.keys(this.items).length;
}
keys() {
const keys = [];
for (let key in this.items) {
if (this.has(key)) {
keys.push(key);
}
}
return keys;
}
values() {
const values = [];
for (let key in this.items) {
if (this.has(key)) {
values.push(this.items[key]);
}
}
return values;
}
getItems() {
return this.items;
}
}
const d = new Dictionary()
d.set('address', 'jiangxi')
d.set('sex', 'girl')
d.set('name', 'fade')
assert.strictEqual(d.size(), 3)
d.set('name', 'custom')
assert.strictEqual(d.get('name'), 'custom')
d.remove('name')
assert.strictEqual(d.size(), 2)
console.log(d.keys())
console.log(d.values())
console.log(d.getItems())