1、创建一个haxe数组
// Creating an array using array syntax
var arrayOfStrings:Array<String> = ["Apple", "Pear", "Banana"];
trace(arrayOfStrings);
// Creating an array with float values
var arrayOfFloats = [10.2, 40.5, 60.3];
trace(arrayOfFloats);
2、数组表达式或者说生成器
var aInts = [for(i in 0...5) i];
trace(aInts); // [0,1,2,3,4]
var aEvens = [for(i in 0...5) i*2];
trace(aEvens); // [0,2,4,6,8]
var aChars = [for(c in 65...70) String.fromCharCode(c)];
trace(aChars); // ['A','B','C','D','E']
var x = 1;
var aBits = [while(x < 128) x = x * 2];
trace(aBits); // [2,4,8,16,32,64,128]
3、增加元素
var arrayOfStrings:Array<String> = [];
// Adds "Hello" at index 0, offsetting elements to the right by one position
arrayOfStrings.insert(0, "Hello");
// Prepends "Haxe" to the start of the array
arrayOfStrings.unshift("Haxe");//把元素放置在数组的首位unshift
// Appends "World" to the end of the array
arrayOfStrings.push("World");
// Appends "foo", "bar" elements to the end of a copy of the array
arrayOfStrings = arrayOfStrings.concat(["foo", "bar"]);
4、删减元素
var arrayOfStrings:Array<String> = ["first", "foo", "middle", "foo", "last"];
// Removes first occurence of "middle" in the array
arrayOfStrings.remove("middle");
// Removes and returns three elements beginning with (and including) index 0
arrayOfStrings.splice(0, 3);
// Removes and returns first element of the array
arrayOfStrings.shift();//删除掉第一个元素
// Removes and returns last element of the array
arrayOfStrings.pop();
5、查找元素
var arrayOfStrings:Array<String> = ["first", "foo", "middle", "foo", "last"];
// Retrieves first array element
var first = arrayOfStrings[0];
// Retrieves last array element
var last = arrayOfStrings[arrayOfStrings.length - 1];
// Retrieves first occurrence of "foo" string
var firstOccurrence = arrayOfStrings[arrayOfStrings.indexOf("foo")];
// Retrieves last occurrence of "foo" string
var lastOccurrence = arrayOfStrings[arrayOfStrings.lastIndexOf("foo")];
6、迭代数组
for (item in arrayOfStrings) {
// do something
}
7、数组复制
//其实都是clone
var list:Array<String> = ["first", "second", "last"];
var copiedList = list.copy();
copiedList.push("best"); // add extra value to the copied list
trace(list); // ["first", "second", "last"];
trace(copiedList); // ["first", "second", "last", "best"];
8、Filter数组
var list:Array<String> = ["apple", "pear", "banana"];
var filteredList = list.filter(function (v) return v == "banana");
trace(filteredList); // banana
--------------------------
var list:Array<String> = ["apple", "pear", "banana"];
var filteredList = [for (v in list ) if (v == "banana") v];
trace(filteredList); // banana
9、Map方法
var list:Array<String> = ["first", "second", "last"];
var importantList = list.map(function (v) return v.toUpperCase());
trace(importantList); // ["FIRST","SECOND","LAST"]
var list:Array<String> = ["first", "second", "last"];
var importantList = [for(v in list) v.toUpperCase()];
trace(importantList); // ["FIRST","SECOND","LAST"]
var list:Array<String> = ["1.1", "1.2", "1.3"];
var listAsFloats:Array<Float> = list.map(Std.parseFloat);
trace(listAsFloats); // [1.1, 1.2, 1.3]
10、翻转数组
var list:Array<String> = ["first", "second", "last"];
list.reverse();
trace(list); // ["last","second","first"]
11、数组切块
var list:Array<String> = ["first", "second", "last"];
var slicedList = list.slice(1, 2);
trace(slicedList); // ["second"]
12、数组排序
数组元素可以根据比较函数进行排序。比较函数比较两个元素(前置和后继),必须返回一个int。返回值为0表示元素相等,正返回值让位给后继,负返回值让位给前置。
predecessor //
successor
var arrayOfInts:Array<Int> = [1,5,2,4,3];
arrayOfInts.sort(function (a, b) return a - b);
trace(arrayOfInts); // [1,2,3,4,5]
-------------
var arrayOfStrings:Array<String> = ["c", "a", "b"];
arrayOfStrings.sort(function (a, b) return if (a < b) -1 else 1);
trace(arrayOfStrings); // ["a","b","c"]
13、显示数组
var list:Array<String> = ["first", "second", "last"];
// Returns a string of array elements concatenated by separator string
var listJoined:String = list.join(" / ");
trace(listJoined); // "first / second / last"
// Returns a string representation of the array structure
var listAsString:String = list.toString();
trace(listAsString); // "first,second,last"