数据结构-字典 发表于 2017-04-06 | 分类于 数据结构与算法JavaScript描述 | chapter-7 字典 键值对形式存储数据的数据结构 JavaScript的Object类就是以字典的形式设计的 基础是Array类,可以对字典的键排序,JavaScript中是不能对对象的属性进行排序的。 JavaScript中一切皆对象,数组也是对象。 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162/** * 字典实现 */function Dictionary () { this.datastore = new Array();}Dictionary.prototype = { constructor: Dictionary, // 添加 add: function (key, value) { this.datastore[key] = value; }, // 查找 find: function (key) { return this.datastore[key]; }, // 删除 remove: function (key) { delete this.datastore[key]; }, // 显示字典中所有的键值对 showAll: function () { // 对键名进行重排序 var arr = Object.keys(this.datastore).sort(); for (var i = 0; i < arr.length; i++) { var key = arr[i]; console.log(key + ' -> ' + this.datastore[key]) } }, // 字典元素个数 count: function () { // 当数组的键的类型为字符串的时候,length属性就不管用了 return Object.keys(this.datastore).length; }, // 清除 clear: function () { for (var key in this.datastore) { delete this.datastore[key]; } }}// 主程序var pbook = new Dictionary();// pbook.add('Mike', '123');// pbook.add('David', '345');// pbook.add('Cynthia', '456');// console.log(pbook.find('David'));// pbook.remove('David');// pbook.showAll();// console.log(pbook.count());// pbook.clear();// console.log(pbook.count());// debuggerpbook.add('Raymond', '123');pbook.add('David', '345');pbook.add('Cynthia', '456');pbook.add('Mike', '723');pbook.add('Jennifer', '987');pbook.add('Danny', '012');pbook.add('Jonathan', '666');pbook.showAll();