1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- export default function HashMap() {
- //定义长度
- var length = 0;
- //创建一个对象
- var obj = new Object();
- /**
- * 判断Map是否为空
- */
- this.isEmpty = function () {
- return length == 0;
- };
- /**
- * 判断对象中是否包含给定Key
- */
- this.containsKey = function (key) {
- return (key in obj);
- };
- /**
- * 判断对象中是否包含给定的Value
- */
- this.containsValue = function (value) {
- for (var key in obj) {
- if (obj[key] == value) {
- return true;
- }
- }
- return false;
- };
- /**
- *向map中添加数据
- */
- this.put = function (key, value) {
- if (!this.containsKey(key)) {
- length++;
- }
- obj[key] = value;
- };
- /**
- * 根据给定的Key获得Value
- */
- this.get = function (key) {
- return this.containsKey(key) ? obj[key] : null;
- };
- /**
- * 根据给定的Key删除一个值
- */
- this.remove = function (key) {
- if (this.containsKey(key) && (delete obj[key])) {
- length--;
- }
- };
- /**
- * 获得Map中的所有Value
- */
- this.values = function () {
- var _values = new Array();
- for (var key in obj) {
- _values.push(obj[key]);
- }
- return _values;
- };
- /**
- * 获得Map中的所有Key
- */
- this.keySet = function () {
- var _keys = new Array();
- for (var key in obj) {
- _keys.push(key);
- }
- return _keys;
- };
- /**
- * 获得Map的长度
- */
- this.size = function () {
- return length;
- };
- /**
- * 清空Map
- */
- this.clear = function () {
- length = 0;
- obj = new Object();
- };
- }
|