定义
浅显地说,字典就是键值对[键,值],是键到值的映照关联。
要领
set(key,value):向字典中增加新元素。
remove(key):经由过程运用键值来从字典中移除键值对应的数据值。
has(key):假如某个键值存在于这个字典中,则返回true,反之则返回false。
get(key):经由过程键值查找特定的数值并返回。
clear():将这个字典中的一切元素悉数删除。
size():返回字典所包括元素的数目。与数组的length属性相似。
keys():将字典所包括的一切键名以数组情势返回。
values():将字典所包括的一切数值以数组情势返回。
完成
function Dictionary() {
// items作为私有变量,是字典的载体
var items = {};
// has要领,假如某个键值存在于这个字典中,则返回true,反之则返回false
this.has = function (key) {
return key in items;
};
// set要领,向字典中增加新元素
this.set = function (key, value) {
items[key] = value;
};
// remove要领,经由过程运用键值来从字典中移除键值对应的数据值
this.remove = function(key) {
if (this.has(key)) {
delete items[key];
return true;
}
return false;
};
// get要领,经由过程键值查找特定的数值并返回
this.get = function(key) {
return this.has(key) ? items[key] : undefined;
};
// clear要领,将这个字典中的一切元素悉数删除
this.clear = function(){
// 清空字典列表
items = {};
};
// size要领,返回字典所包括元素的数目。与数组的length属性相似
this.size = function(){
// Object.keys不会遍历原型链上的属性
return Object.keys(items).length;
};
// keys要领,将字典所包括的一切键名以数组情势返回
this.size = function(){
return Object.keys(items);
};
// values要领,将字典所包括的一切数值以数组情势返回
this.values = function() {
var values = {};
for (var k in items) {
// 用has要领推断,防止遍历到原型链上的属性
if (this.has(k)) {
values.push(items[k]);
}
}
return values;
};
}