Удалить (bool) ложные значения из массива во flash - PullRequest
0 голосов
/ 24 марта 2012

У меня есть массив, который имеет много значений, включая много «ложных» значений.Есть ли способ удалить «ложные» значения быстрее, чем это:

function removeFalseValues (arr:Array):Array {
    var ret:Array = new Array ();
    for (var i:int = 0; i < arr.length; i ++) {
        if (arr[i]) ret.push(arr[i]);
    }
    return ret;
}

?

1 Ответ

2 голосов
/ 24 марта 2012

Вы можете использовать метод filter.

Например:

arr = arr.filter( function(item:*):Boolean { 
    return item; 
});

Обратите внимание, что этот пример, как и размещенный вами код, также будет фильтровать другиетакие элементы, как 0, null объекты и пустые строки.

Если вы хотите сохранить эти значения, вы можете изменить предыдущий код на:

arr = arr.filter( function(item:*):Boolean { 
    return item || !(item is Boolean); 
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...