0

我有一个数字数组:

var myArray:Array = [12345, 23456, 34567, 45678];

如果我想删除说,34567有没有一种干净有效的方法呢?我猜我需要遍历数组,获取该值的位置,然后拼接该位置。

4

3 回答 3

3

您可以使用Array.indexOf来检查可以在数组中找到值的索引。如果没有找到,它将是-1. 在我的示例中,我一直循环并删除,直到索引为-1.

function removeFromArray(list:Array, value:*):void
{
    if (!list || !list.length) return;
    var index:int;
    while((index = list.indexOf(value)) > -1)
    {
         list.splice(index, 1);
    }
}

// test scenario

var myArray:Array = [12345, 23456, 34567, 45678, 34567];

trace("before:" + myArray);
//before:12345,23456,34567,45678,34567

removeFromArray(myArray, 34567);

trace("after:" + myArray);
//after:12345,23456,45678
于 2012-08-31T10:50:03.317 回答
2

如果您有多次出现 34567 ,您可以使用数组方法 filter()过滤数组:

var myArray:Array = [12345, 23456, 34567, 45678, 34567]; // 34567

myArray = myArray.filter(
    function ( item : int, index : int, array : Array ) : Boolean {
        return ( item != 34567 ); // return true if item is not 34567
    }
)
于 2012-08-31T08:57:55.147 回答
-2

等等,刚刚想到这个:

public function ArrayFinder() 
    {   
        var i:int =  (myArray.indexOf(34567));
        splice(i, 1);
    }
于 2012-08-31T07:26:40.973 回答