2009-10-07 57 views
5

我是比較新的規劃,我想知道我怎麼會一個數組轉換:轉換數組轉換成字符串在AS3

[[0,0,0,0,0,0], 
[1,1,1,1,1,1], 
[2,2,2,2,2,2], 
[3,3,3,3,3,3], 
[4,4,4,4,4,4], 
[5,5,5,5,5,5]]; 

成逗號和線劃定回報指數,像一串串:

"0,0,0,0,0,0 
1,1,1,1,1,1 
2,2,2,2,2,2 
3,3,3,3,3,3 
4,4,4,4,4,4 
5,5,5,5,5,5" 

具有動態功能?我搜索了一個implode()函數,但是我找不到任何東西。提前致謝!

回答

9
private function joinArrays(array:Array):String 
{ 
    var result:String = ""; 
    for each(var a:Array in array) 
    { 
     result += a.join() + "\n"; 
    } 
    return result; 
} 

或者,如果你不想在最後一行後的換行:

var result:String = ""; 
var length:Number = array.length; 
for(var i:Number = 0; i < length; i++) 
{ 
    result += array[i].join(); 
    if(i != length - 1) 
     result += "\n"; 
} 
return result; 
+0

感謝,工作奇妙!易於理解。 – 2009-10-07 13:41:12

+2

當調用'toString()'時,默認加入字符是','所以你可以完全切掉'for',只需要用'trace(array.join(「\ n」));'這也解決了你的終止換行符問題 – enzuguri 2009-10-24 13:01:32

1
function join_arr(arr) { 
    var newarr = []; 
    for (var i = 0; i < arr.length; i++) { 
     newarr.push(arr[i].join(",")); 
    } 
    return newarr.join("\n"); 
} 

沒有測試它,但應該工作:)

4

一個簡單的ToString ()將完成這項工作!

var a:Array=[[0,0,0,0,0,0],[1,1,1,1,1,1],[2,2,2,2,2,2],[3,3,3,3,3,3],[4,4,4,4,4,4],[5,5,5,5,5,5]]; 
trace(">",a.toString()); 
//> 0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,5,5 

編輯:由於通常情況下,正則表達式會拯救你的靈魂:)

var a:Array=[[0,0,0,0,0,0],[1,1,1,1,1,1],[2,2,2,2,2,2],[3,3,3,3,3,3],[4,4,4,4,4,4],[5,5,5,5,5,5]]; 
var columns:int=11;//columns count 
trace(a.toString().replace(new RegExp("(.{"+columns+"})(,?)","g"),"$1\n")); 
//output : 
//0,0,0,0,0,0 
//1,1,1,1,1,1 
//2,2,2,2,2,2 
//3,3,3,3,3,3 
//4,4,4,4,4,4 
//5,5,5,5,5,5 
+0

還沒有看到「線返回劃定的指數」對不起! ; ) – OXMO456 2009-10-07 14:18:09