Map = function() {
this.map = new Object();
};
Map.prototype = {
put: function(key, value) {
this.map[key] = value;
},
get: function(key) {
return this.map[key];
}
}; //skip details
var _members = new Array(5);
for (var i = 0; i < 5; i++) {
var map = new Map();
map.put("id", "hello");
_members[i] = map;
}
for (var i = 0; i < _members.length; i++) {
var m = new Map();
m = _members[i];
alert(m.get("id")); //oops
}
请帮帮我。 我想在数组中使用hashmap。但错误被装入alert()行 无论使用pop()进行封装 我不知道我能做什么。等待答复:)
答案 0 :(得分:0)
为什么要尝试实现Javascript中已存在的标准数据类型。
尝试使用es2015
中的Map。
但如果你坚持实施它,它将起作用:
MyMap = function() {
this.map = new Object();
};
MyMap.prototype = {
put: function(key, value) {
this.map[key] = value;
},
get: function(key) {
return this.map[key];
}
}; //skip details
var _members = new Array(5);
for (var i = 0; i < 5; i++) {
var map = new MyMap();
map.put("id", "hello");
_members[i] = map;
}
for (var i = 0; i < _members.length; i++) {
m = _members[i];
alert(m.get("id")); // no oops
}