haxe数组

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"

猜你喜欢

转载自blog.csdn.net/keniv/article/details/88170899
今日推荐