【问题标题】:How to iterate via hashmap items如何通过 hashmap 项进行迭代
【发布时间】:2016-01-08 13:10:06
【问题描述】:

Loop through a 'Hashmap' in JavaScript 中,我看到建议使用“for”循环来遍历哈希集合的元素。我实现了,但是下面的代码:

    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 不是函数

我做错了什么?

谢谢!

【问题讨论】:

  • 强烈建议您养成在 for...in 循环中包含 hasOwnProperty 检查的习惯,或者使用 Object.keys(myObject).map 为您完成检查。

标签: javascript hash


【解决方案1】:

obj 是键名而不是值

var s = "Names: ";
for (var obj in _objs) {
    s += _objs[obj].getName();
}
console.log(s);

【讨论】:

    猜你喜欢
    • 2015-12-02
    • 2011-08-15
    • 2019-04-30
    • 1970-01-01
    • 2019-05-28
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多