2009-10-07 16 views
5

io sono relativamente nuovo per la programmazione e mi chiedevo come avrei fatto convertire un array:Conversione di un array in una stringa in 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]]; 

in una stringa di virgola e la linea di ritorno delineata indici, come:

"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" 

con una funzione dinamica? Ho cercato una funzione implode() ma non ho trovato nulla. Grazie in anticipo!

risposta

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

Oppure, se non si desidera che l'interruzione di riga dopo l'ultima riga:

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

Grazie, ha funzionato meravigliosamente! Facile da capire. –

+2

Il carattere di unione predefinito quando viene chiamato 'toString()' è ',' così si può ritagliare il 'for' interamente e basta andare con' trace (array.join ("\ n")); il tuo problema di interruzione di linea terminante – enzuguri

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

non ho ancora testato, ma dovrebbe funzionare :)

4

Un semplice .toString() farà il lavoro!

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 

EDIT: Come spesso, RegExp salverà la tua anima:)

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

non ha visto gli "indici delimitati di ritorno riga" mi dispiace !! ;) – OXMO456

Problemi correlati