从flash中的数组中删除(bool)false值

时间:2012-03-24 14:28:46

标签: arrays actionscript-3 flash

我有一个包含很多值的数组,包括很多'false'值。 有没有办法删除比这更快的'false'值:

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 个答案:

答案 0 :(得分:2)

您可以使用方法filter

例如:

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

请注意,此示例与您发布的代码一样,也会过滤其他项目,例如0null个对象和空字符串。

如果要保留这些值,可以将以前的代码更改为:

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