2012-09-02 7 views
1

이 필터는 어떤 객체도 반환하지 않는 이유는 무엇입니까?왜이 array.filter는 항상 아무것도 반환하지 않습니까?

NewHashMap.prototype.remove = function (keys, obj) { 
    // snip 
    var myEntries = this.entries; 
    var filteredEntries = myEntries.filter(
     function(entry){ 
      //me.isContainedBy(entry, keys) && 
      //entry.obj === obj 
      true; 
     }); 
    console.debug("entries ", myEntries.length); 
    console.debug("filtered ", filteredEntries.length); 
    // snip 
} 

조금 더 다른 컨텍스트에서 사용하고 작동합니다.
또한 실제 필터 요구 사항을 주석 처리하고 일반 True로 바 꾸었습니다. 같은 것.

나는 그것이 문맥의 문제라고 생각하지만, 나는 어디 있는지 보지 못했다.

답변

2

귀하의 true가하는 아무것도하지 않는 한 익명 함수에서 당신 return 그것을 : 당신은 return 콜백 함수에서 부울 값을 필요

var filteredEntries = myEntries.filter(
    function(entry){ 
     return me.isContainedBy(entry, keys) && entry.obj === obj 
}); 
+0

DOH! 메모장 ++는 약 1 시간 동안 내 얼굴에 웃을 것임에 틀림 없다 : P –

2

:

var filteredEntries = myEntries.filter(
    function(entry){ 
     //me.isContainedBy(entry, keys) && 
     //entry.obj === obj 
     return true; 
}); 

또는 실제 필터 코드

:

var filteredEntries = myEntries.filter(
     function(entry){ 
      //me.isContainedBy(entry, keys) && 
      //entry.obj === obj 
      return true; 
     }); 
관련 문제