📄 samplebasicarrayoperation.as
字号:
package org.kingda.book.array
{
import flash.display.Sprite;
import flash.utils.ByteArray;
public class SampleBasicArrayOperation extends Sprite
{
private var bookList:Array;
public function SampleBasicArrayOperation() {
//sampleLength();
//sampleSearch();
//sampleAddElement();
samplePushAndUnshift();
//sampleSplice();
//sampleConcat();
//sampleArrayCopy();
//sampleSlice();
//sampleShadowClone();
//sampleDeepClone();
}
private function sampleDeepClone():void {
var objectElement:Object = {name:"kingda", web:"www.kingda.org"};
var arrayElement:Array = [1,2,3];
var foo:Array = ["a string element", arrayElement, objectElement];
var fooBA:ByteArray = new ByteArray();
fooBA.writeObject(foo);
fooBA.position = 0;
var bar:Array = fooBA.readObject() as Array;
trace (bar);
trace (foo == bar);
trace (foo[0] == bar[0]);
trace (foo[1] == bar[1]);
trace (foo[2] == bar[2]);
bar[0] = "a new string in bar";
bar[1][0] = 1000;
bar[2].web = "www.actionscript3.cn";
trace (foo);
trace (bar);
trace (foo[2].web);
trace (bar[2].web);
/*
a string element,1,2,3,[object Object]
false
true
false
false
a string element,1,2,3,[object Object]
a new string in bar,1000,2,3,[object Object]
www.kingda.org
www.actionscript3.cn
*/
}
private function sampleShadowClone():void {
var objectElement:Object = {name:"kingda", web:"www.kingda.org"};
var arrayElement:Array = [1,2,3];
var foo:Array = ["a string element", arrayElement, objectElement];
trace (foo);
//var bar:Array = foo.slice();
var bar:Array = foo.concat();
trace (bar);
trace (foo == bar);
trace (foo[0] == bar[0]);
trace (foo[1] == bar[1]);
trace (foo[2] == bar[2]);
bar[0] = "a new string in bar";
bar[1][0] = 1000;
bar[2].web = "www.actionscript3.cn";
trace (foo);
trace (bar);
trace (foo[2].web);
trace (bar[2].web);
/*
a string element,1,2,3,[object Object]
a string element,1,2,3,[object Object]
false
true
true
true
a string element,1000,2,3,[object Object]
a new string in bar,1000,2,3,[object Object]
www.actionscript3.cn
www.actionscript3.cn
*/
}
private function sampleSlice():void {
var foo:Array = ["A","B","C","D","E","F"];
trace (foo.slice(2,4));
trace (foo.slice(4,2));
trace (foo.slice(-3,-1));
trace (foo.slice(3));
trace (foo.slice(-2));
trace (foo);
/*输出:
C,D
D,E
D,E,F
E,F
A,B,C,D,E,F
*/
}
private function sampleConcat():void {
var foo:Array = ["A","B","C"];
var bar1:int = 1;
var bar2:Array = [2,3,4];
var bar3:Array = ["a","b","c"]
var newFoo = foo.concat(bar1, bar2, bar3);
trace (newFoo)
//输出:A,B,C,1,2,3,4,a,b,c
trace (newFoo.length);
//输出:10
foo.push(bar1, bar2, bar3);
trace (foo);
//输出:A,B,C,1,2,3,4,a,b,c
trace (foo.length);
//输出:6
trace (foo[4]);
//输出:2,3,4
}
private function sampleSearch():void {
var foo:Array = ["apple", "banana", "pear", "berry", "apple", "banana","london"];
trace ("按索引从小到大查:"+ foo.indexOf("banana"));
trace ("按索引从大到小查:"+ foo.lastIndexOf("banana"));
trace ("从第三个元素开始,按索引从小到大查:"+ foo.indexOf("banana", 2));
trace ("从第五个元素开始,按索引从大到小查:"+ foo.lastIndexOf("banana", 4));
var abc:ABC = new ABC();
trace (abc);
trace (foo.indexOf(abc));
trace (foo[6]==abc);
}
private function samplePushAndUnshift():void {
var bookList:Array = ["Book I","Book II","Book III"];
trace (bookList.push("A"));
trace (bookList.push("B", "C", "D"));
trace (bookList);
trace (bookList.unshift("1"));
trace (bookList.unshift("2","3","4"));
trace (bookList);
/*
4
7
Book I,Book II,Book III,A,B,C,D
8
11
2,3,4,1,Book I,Book II,Book III,A,B,C,D
*/
}
//foo.push('abb','dd');
//foo.concat(['abb','dd']);
//trace ("foo:" + foo + "\nfoo's length:"+ foo.length);
private function samplePopAndShift():void {
var bookList:Array = ["Book I","Book II","Book III"];
trace ("被pop删掉的书是:" + bookList.pop());
trace ("被shift删掉的书是:" + bookList.shift());
trace ("原书单变成:" + bookList);
/*
被pop删掉的书是:Book III
被shift删掉的书是:Book I
原书单变成:Book II
*/
}
private function sampleSplice():void {
var bookList:Array = ["Book I","Book II","Book III", "Book IV", "Book V"];
trace (bookList.splice(2,2,"NewBook1","NewBook2","NewBook3"));
trace (bookList);
trace (bookList.splice(1,2));
trace (bookList);
trace (bookList.splice(3));
trace (bookList);
trace (bookList.splice(2,0,"书1","书2"));
trace (bookList);
/*
Book III,Book IV
Book I,Book II,NewBook1,NewBook2,NewBook3,Book V
Book II,NewBook1
Book I,NewBook2,NewBook3,Book V
Book V
Book I,NewBook2,NewBook3
Book I,NewBook2,书1,书2,NewBook3
*/
}
private function sampleArrayCopy():void {
var element:Array = [0,0]
var foo:Array = [1,2,3,4,5, element];
var bar:Array = foo.concat();
trace (bar[5]==foo[5]);
}
private function sampleLength():void {
var foo:Array = ["one", "two", "three"];
trace (foo.length);
//输出:3
//设定foo的长度为5
foo.length = 5;
trace (foo);
//输出: one,two,three,,
//可以看到:多出了两个空的元素
//使用超过length的索引来设定元素
foo[7] = "out ranged";
trace (foo);
//输出:one,two,three,,,,,out ranged
trace (foo.length);
//输出:8
trace ("null?"+ foo[5]);
//强行设定foo的length为3
foo.length = 3;
trace (foo);
//输出:one,two,three
//结果foo将三个元素以后的所有元素全部扔掉了
}
}
}
class ABC {
public function toString():String {
return "london";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -