AS3.0删除数组中指定位置的元素

btnposDel.addEventListener(MouseEvent.CLICK,posDel)function posDel(e:MouseEvent){ output1.text = ""; var ipos:int;iNumArray = 10; ipos = int(inputNum); for(i=ipos;i<10;i++) aDatabase1[i] = aDatabase1[i+1]; iNumArray--; for(i=0;i<iNumArray;i++) output1.appendText(aDatabase1[i] +" ")}
btnposDel.addEventListener(MouseEvent.CLICK,posDel)
function posDel(e:MouseEvent)
{
output1.text = "";
var ipos:int;
iNumArray = 10;
ipos = int(inputNum);
for(i=ipos;i<10;i++)
aDatabase1[i] = aDatabase1[i+1];
iNumArray--;
for(i=0;i<iNumArray;i++)
output1.appendText(aDatabase1[i] +" ")}

每次只把第一个删除了

1、ipos = int(inputNum);

inputNum是什么东西?你可以trace一下,如果inputNum是输入文本的话,那么int(inputNum)始终等于0啊,正确的应该是 ipos = int(inputNum.text);

2、删除指定数组指定位置的元素,很简单:
var ipos:int = int(inputNum.text);
aDatabase.splice(ipos,1);

两行搞定。和你以前那个不同,这个就彻底删除了,不是把之后的元素都向前移动一位。

顺便和你说说数组的splice用法,splice有三个参数,第一个是开始删除的位置,比如上例从ipos开始删除,就传递ipos这个参数。如果是-1,就是从最后一个开始索引。第二个是删除的个数,1就是删除一个元素,2就删除两个……还有第三个可选参数,是添加元素,就是在ipos这个位置之后添加进数组的元素,可以是多个。所以一个splice方法几乎可以完整实现所有的数组删除和添加功能了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-04-18

Array数组删除第一函数用shift()

即可删掉第一个元素

aDatabase1.shift();

完整代码:

btnposDel.addEventListener(MouseEvent.CLICK,posDel);
function posDel(e:MouseEvent):void
{
    output1.text = "";
    var ipos:int;iNumArray = 10;
    ipos = int(inputNum);
    for(i=ipos;i<10;i++)
    {
        aDatabase1[i] = aDatabase1[i+1];
    }
    iNumArray--;
    //这样就会删掉aDatabase1数组的第一个元素
    aDatabase1.shift();
    for(i=0;i<iNumArray;i++)
    {
        output1.appendText(aDatabase1[i] +" ");
    }
}

本回答被提问者采纳
第2个回答  2013-12-10
通过索引删除就可以了