- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
Map = function() {
this._entries = new Array();
}
Map.prototype.containsKey = function(key) {
return this.getEntry(key)!=null;
}
Map.prototype.get = function(key) {
var entry = this.getEntry(key);
return entry!=null ? entry.value : null;
}
Map.prototype.put = function(key, value) {
var entry = this.getEntry(key);
if (entry!=null) {
entry.value = value;
} else {
entry = new Map.Entry(key, value);
this._entries[this._entries.length] = entry;
}
}
Map.prototype.size = function() {
return this._entries.length;
}
Map.prototype.getEntry = function(key) {
for (var i=0; i<this._entries.length; i++) {
if (this._entries[i].key==key)
return this._entries[i];
}
return null;
}
Map.prototype.entries = function() {
return this._entries;
}
Map.prototype.keys = function() {
var result = new Array();
for (var i=0; i<this._entries.length; i++) {
result[result.length] = this._entries[i].key;
}
return result;
}
Map.prototype.values = function() {
var result = new Array();
for (var i=0; i<this._entries.length; i++) {
result[result.length] = this._entries[i].value;
}
return result;
}
Map.prototype.addAll = function(map) {
if (map==null)
return;
var oe = map.entries();
for (var i=0; i<oe.length; i++) {
this.put(oe[i].key, oe[i].value);
}
}
Map.prototype.toString = function() {
return "[Map{size:"+this._entries.length+", entries:"+this._entries+"}]";
}
Map.Entry = function(key, value) {
if (arguments.length==0)
return;
this.key = key;
this.value = value;
}
Map.Entry.prototype.toString = function() {
return "[Entry{key:"+this.key+", value:"+this.value+"}]";
}
То что любой объект и так работает как Map автор видимо не знал.
Можно было бы предположить, что автор это знал, но написал этот Map для того чтобы использовать произвольные объекты как ключи, однако во всех обнаруженных использованиях этой Map ключами были строки.