字典
字典是一种以键 - 值对形式存储数据的数据结构
JavaScript 的 Object 类就是以字典的形式设计的。本章将使用 Object 类本身的特性,实现
一个 Dictionary 类,让这种字典类型的对象使用起来更加简单。你也可以只使用数组和
对象来实现本章展示的方法,但是定义一个 Dictionary 类更方便,也更有意思。
实现
Dictionay 类的基础是 Array 类,而不是 Object 类。如果我们想对字典中的键排序,而 JavaScript 中是不能对对象的属性进行排序的。但是也不要忘记,JavaScript 中一切皆对象,数组也是对象。
var Dictionary = function () {
this.dateStore = new Array();
}
Dictionary.prototype = {
//添加
add: function (key, value) {
this.dateStore[key] = value;
},
//查找
find: function (key) {
return this.dateStore[key];
},
//移除
remove: function (key) {
delete this.dateStore[key]
},
//展示
showAll: function () {
var str = ''
//通过sort对字典进行排序,输出的是有序的字典
for (var key of Object.keys(this.dateStore).sort()) {
str += `${key}:${this.dateStore[key]} `;
}
return str;
},
//数量
count: function () {
//不是用length的原因是?这是因为当键的类型为字符串时, length 属性就不管用了
var count = 0;
for (var key of Object.keys(this.dateStore)) {
count++;
}
return count;
},
//清湖
clear: function () {
for (var key of Object.keys(this.dateStore)) {
delete this.dateStore[key];
}
},
}
注意: 字典可以排序,通过数组可以排序,在获取字典的key时对字典进行排序。