2014-04-17 23 views
0

다음 코드를 제거 된 복사본으로 가져올 수 있습니다.ArrayCollection에서 중복 항목과 필터 빈 항목을 모두 제거하려면 어떻게해야합니까?

private function removeDuplicates(item:Object):Boolean { 
      var returnValue:Boolean = false; 

     if (!myObject.hasOwnProperty(item.myVariable)){ 
       myObject[item.myVariable] = item; 
       returnValue = true; 
      } 
      return returnValue; 
     } 

하지만 함수에 다음 코드를 추가 할 때 기능이있는 ArrayCollection에 빈 항목을 필터링하지 않습니다,하지만 더 이상 중복 제거뿐만 아닙니다.

private function removeDuplicates(item:Object):Boolean { 
      var returnValue:Boolean = false; 

     if (!myObject.hasOwnProperty(item.myVariable && item.myVariable != "")){ 
       myObject[item.myVariable] = item; 
       returnValue = true; 
      } 
      return returnValue; 
     } 

모든 조언을 받으실 수 있습니다. 고맙습니다.

답변

2

괄호를 잘못 설정했습니다. myObject.hasOwnProperty(item.myVariable && item.myVariable != "")myObject.hasOwnProperty(true)과 같습니다. 표현식이 함수에 전달되기 전에 평가되기 때문입니다. 원하는 작업 :

if (!myObject.hasOwnProperty(item.myVariable) && (item.myVariable != "")) { 
    myObject[item.myVariable] = item; 
    returnValue = true; 
}