Преобразование массива в строку в AS3 - PullRequest
5 голосов
/ 07 октября 2009

Я относительно новичок в программировании, и мне было интересно, как я могу преобразовать массив:

[[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 (), но ничего не смог найти. Заранее спасибо!

Ответы [ 3 ]

9 голосов
/ 07 октября 2009
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;
4 голосов
/ 07 октября 2009

Простой .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

РЕДАКТИРОВАТЬ: Как часто RegExp спасет вашу душу:)

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
1 голос
/ 07 октября 2009
function join_arr(arr) {
    var newarr = [];
    for (var i = 0; i < arr.length; i++) {
        newarr.push(arr[i].join(","));
    }
    return newarr.join("\n");
}

Не проверял, но должен работать:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...