;2015年1月5日12:43:49 ;sunwind ;数组学习 Array :=[["a1","a2",3],["b1","b2",2],["c1","c2",1]] Array.Insert(2,["d1","d2",1]) Array.join := Func("Array_Join") Array.insert := Func("Array_Insert") Array.delete := Func("Array_Delete") Array.sort := Func("Array_sort") MsgBox % Array.join() Msgbox, % Array.sort().join("`n") Msgbox, % Array.reverse().join("`n") return Array(p*){ p.base := Object("join", "Array_Join", "reverse", "Array_Reverse", "sort", "Array_sort", "insert", "Array_Insert", "delete", "Array_Delete") Return p } Array_Join(arr, sep="`n"){ Loop, % arr.MaxIndex() { i:=A_Index Loop, % arr[1].MaxIndex() { j:=A_Index str .= arr[i][j] "|" } str .=sep } StringTrimRight, str, str, % StrLen(sep) return str } Array_Sort(arr, func="Array_CompareFunc"){ n := arr.MaxIndex(), swapped := true while swapped { swapped := false Loop, % n-1 { i := A_Index if %func%(arr[i][3], arr[i+1][3], 1) > 0 ; standard ahk syntax for sort callout functions arr.insert(i, arr[i+1]).delete(i+2), swapped := true } n-- } Return arr } Array_CompareFunc(a, b, c){ return a > b ? 1 : a = b ? 0 : -1 } Array_Reverse(arr) { arr2 := Array() Loop, % len:=arr.maxindex() { arr2[len-(A_Index-1)] := arr[A_Index] } Return arr2 } Array_Insert(arr, index, p1="……", p2="……", p3="……", p4="……", p5="……", p6="……"){ While (_:=p%A_Index%)!="……" && A_Index