jQuery .forEach()导致错误," undefined不是函数"

时间:2015-01-22 03:56:48

标签: javascript jquery object

我收到行undefined is not a function的错误entries.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"]}
};

2 个答案:

答案 0 :(得分:2)

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

for (entry in entries) { ...

答案 1 :(得分:0)

原因很简单。例如,如果您有一个对象foo,并且您尝试调用foo.bar(),那么,如果bar未定义,则您不能将其用作函数,您将获得错误

  

undefined不是函数

下面

entries.forEach(function(e) {

我认为forEach不存在,并且出于上述原因您有错误。试试这个:

console.log(entries.forEach);

undefined吗?