【问题标题】:jQuery .forEach() causing error, "undefined is not a function"jQuery .forEach() 导致错误,“未定义不是函数”
【发布时间】:2015-01-22 12:23:00
【问题描述】:

我收到了错误消息,undefined is not a functionentries.forEach(function(e) { 行,我不知道为什么。有人可以帮忙吗?

当我将条目传递给函数时,我确定条目被定义为下面的原型。

这是我正在处理的功能:

function score_relevance3(entries, usr_tags) {

    entries.forEach(function(e) 
    {
        entries[e].count = 0;
        entries[e].tags.forEach(function(i) 
        {
            usr_tags.forEach(function(f) 
            {
                if (entries[e].tags[i] === usr_tags[f]) 
                {
                    entries[e].count++;
                }
            });
        });
    });

    return entries;
}

这是我的entries 对象的原型:

entries = {
"1":{"tags":["1","2"]},
"2":{"tags":["1","3","2"]},
"3":{"tags":["1","2"]},
"4":{"tags":["1","2"]},
"5":{"tags":["1","2"]},
"6":{"tags":["4","5","6","2"]},
"7":{"tags":["4","7"]},
"8":{"tags":["4","8","3"]},
"9":{"tags":["4","9"]}
};

【问题讨论】:

标签: javascript jquery object


【解决方案1】:

就像评论中提到的 elclanrs 一样,您不能在对象上调用 forEach,只能在数组上调用。如果您想浏览条目,请使用:

for (entry in entries) { ...

【讨论】:

    【解决方案2】:

    原因很简单。例如,如果你有一个对象,foo,你尝试调用foo.bar(),那么,如果bar是未定义的,那么你不能将它作为一个函数使用,你会得到错误

    undefined 不是函数

    这里

    entries.forEach(function(e) {
    

    我相信forEach 不存在,并且由于上述原因而出现错误。试试这个:

    console.log(entries.forEach);
    

    undefined吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-23
      • 2014-11-11
      • 1970-01-01
      • 2014-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多