我有一个数字数组:
var myArray:Array = [12345, 23456, 34567, 45678];
如果我想删除说,34567
有没有一种干净有效的方法呢?我猜我需要遍历数组,获取该值的位置,然后拼接该位置。
我有一个数字数组:
var myArray:Array = [12345, 23456, 34567, 45678];
如果我想删除说,34567
有没有一种干净有效的方法呢?我猜我需要遍历数组,获取该值的位置,然后拼接该位置。
您可以使用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
如果您有多次出现 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
}
)
等等,刚刚想到这个:
public function ArrayFinder()
{
var i:int = (myArray.indexOf(34567));
splice(i, 1);
}