Как удалить дубликаты и отфильтровать пустые записи в 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;
        }

Любые советы приветствуются. Спасибо.


person jayron    schedule 17.04.2014    source источник


Ответы (1)


Вы неправильно расставили скобки. myObject.hasOwnProperty(item.myVariable && item.myVariable != "") равно myObject.hasOwnProperty(true), потому что выражение вычисляется перед передачей в функцию. Вы хотите сделать это:

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