插入数组元素

用于将元素添加到索引数组的最基本方法是使用数组访问 ([]) 运算符。若要设置索引数组元素的值,请在赋值语句的左侧使用 Array 或 Vector 对象名称和索引编号:

songTitles[5] = "Happy Birthday";

如果 Array 或 Vector 在该索引处还没有元素,则会创建该索引并将值存储在那里。如果该索引处存在值,则新值会替换现有值。

Array 对象允许您在任何索引位置创建元素。但是对于 Vector 对象,您只能向现有索引或下一个可用索引赋值。下一个可用索引对应于 Vector 对象的 length 属性。向 Vector 对象添加新元素的最安全方式是使用类似于下面的清单的代码:

myVector[myVector.length] = valueToAdd;

可以使用 Array 和 Vector 类的三种方法(push()unshift()splice())将元素插入索引数组。push() 方法用于在数组末尾添加一个或多个元素。换言之,使用 push() 方法在数组中插入的最后一个元素将具有最大索引号。unshift() 方法用于在数组开头插入一个或多个元素,并且始终在索引号 0 处插入。splice() 方法用于在数组中的指定索引处插入任意数目的项目。

下面的示例对所有三种方法进行了说明。它创建一个名为 planets 的数组,以便按照行星距离太阳由近到远的顺序存储各个行星的名称。首先,调用 push() 方法以添加初始项目 Mars。接着,调用 unshift() 方法在数组开头插入项 Mercury。最后,调用 splice() 方法在 Mercury 之后和 Mars 之前插入项 VenusEarth。传递给 splice() 的第一个参数是整数 1,它用于指示从索引 1 处开始插入。传递给 splice() 的第二个参数是整数 0,它表示不应删除任何项。传递给 splice() 的第三和第四个参数 VenusEarth 为要插入的项。

var planets:Array = new Array(); 
planets.push("Mars"); // array contents: Mars 
planets.unshift("Mercury"); // array contents: Mercury,Mars 
planets.splice(1, 0, "Venus", "Earth"); 
trace(planets); // array contents: Mercury,Venus,Earth,Mars

push()unshift() 方法均返回一个无符号整数,它们表示修改后的数组长度。在用于插入元素时,splice() 方法返回空数组,这看上去也许有点奇怪,但考虑到 splice() 方法的多用途性,您便会觉得这样更有意义。通过使用 splice() 方法,不仅可以将元素插入到数组中,而且还可以从数组中删除元素。用于删除元素时,splice() 方法将返回包含被删除元素的数组。

注: 如果某个 Vector 对象的 fixed 属性为 true,则不能更改该 Vector 中的元素数。如果尝试使用此处介绍的方法向固定长度 Vector 添加新元素,则会发生错误。