Javascript 如何通过hashmap项进行迭代
在中,我看到了使用“for”循环遍历散列集合元素的建议。我实现了这一点,但代码如下:Javascript 如何通过hashmap项进行迭代,javascript,hash,Javascript,Hash,在中,我看到了使用“for”循环遍历散列集合元素的建议。我实现了这一点,但代码如下: function MyClass(objs) { var _objs = objs; this.showNames = function () { var s = "Names: "; for (var obj in _objs) { s += obj.getName();
function MyClass(objs)
{
var _objs = objs;
this.showNames = function () {
var s = "Names: ";
for (var obj in _objs) {
s += obj.getName();
}
console.log(s);
};
}
function MyObj(name)
{
var _name = name;
this.getName = function () { return _name; };
}
var mc = new MyClass({ 'M': new MyObj("morning"), 'D': new MyObj("Day") });
mc.showNames();
给出错误:
未捕获类型错误:obj.getName不是函数
我做错了什么
谢谢
obj
是键名,而不是值
var s = "Names: ";
for (var obj in _objs) {
s += _objs[obj].getName();
}
console.log(s);
强烈建议您养成在循环中使用
hasOwnProperty
检查for…的习惯,或者使用Object.keys(myObject.map
为您执行此操作。