我收到行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"]}
};
答案 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
吗?