2015-01-22 3 views
1

entries.forEach(function(e) {에 대해 undefined is not a function 오류가 발생하며 그 이유를 알 수 없습니다. 누구든지 도와 줄 수 있습니까?jQuery .forEach()에서 오류가 발생했습니다. "정의되지 않은 함수입니다."

필자는 항목을 함수에 전달할 때 아래 프로토 타입으로 정의됩니다.

다음
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"]} 
}; 
+5

오브젝트에는'forEach' 메소드가 없습니다. – elclanrs

+2

어디에서'jQuery 's foreach'를 사용하고 있습니까? – Mritunjay

+0

jquery –

답변

0

이유는 간단하다

내가 일하고 있어요 기능입니다. 당신은 객체, foo을 가지고, 당신은 bar이 정의되지 않은 경우, 다음, foo.bar()를 호출하려고하면 예를 들어, 다음이 아닌 당신은 함수로 사용할 수 없으며

정의의 오류가 발생합니다 기능

entries.forEach(function(e) { 

여기

나는 forEach 존재하지 않는 믿고 당신은 위의 오류가 이유를 언급합니다. 시도해보십시오.

console.log(entries.forEach); 

undefined입니까?

2

elclanrs가 주석에 언급 한 것과 같이 객체에 대해 forEach를 호출 할 수는 없으며 배열 만 호출 할 수 있습니다. 항목을 검토하려면 다음을 사용하십시오.

for (entry in entries) { ... 
관련 문제