AS3我目前使用的是array.slice()吗?

时间:2014-05-28 15:41:31

标签: arrays actionscript-3

我想在设置索引处从数组中删除一个值。

这是我有的while循环

while (i < objects.length)
{
    var index:int = get_index(objects[i]);
    if (index != -1)
    {
        Quadtree_list[index].insert(objects[i]);
        objects.slice(i, 1);
    } else {
        i++;
    }
}

迟早我无法摆脱循环,所以它崩溃了

但如果我用object.pop替换objects.slice,它可以工作(但不能删除正确的索引)

快速记录objects.slice(i, 1)并没有减少数组的长度,但objects.pop()是,我如何使.slice()减少数组的大小?。

1 个答案:

答案 0 :(得分:2)

Array.slice(x,y)返回一个包含索引x到索引y的元素的数组。

我相信你所追求的是Array.splice(startIndex, deleteCount),这是一个多功能的功能。在您的代码objects.splice(i, 1);

  1. 从index(startIndex)开始
  2. 删除元素,直至deleteCount(1)
  3. 返回包含已删除元素的数组