我有一系列数字:
var myArray:Array = [12345, 23456, 34567, 45678];
如果我想删除发言,34567
是否有一种干净有效的方法呢?我猜我需要循环遍历数组,获取该值的位置,然后拼接该位置。
答案 0 :(得分: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
答案 1 :(得分:2)
如果您有多次出现34567,可以使用Array method 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
}
)
答案 2 :(得分:-2)
坚持下去,想到这个:
public function ArrayFinder()
{
var i:int = (myArray.indexOf(34567));
splice(i, 1);
}