我对编程比较陌生,我想知道如何转换数组:
[[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()函数,但我找不到任何东西。提前谢谢!
答案 0 :(得分: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;
答案 1 :(得分: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
编辑:通常,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
答案 2 :(得分:1)
function join_arr(arr) {
var newarr = [];
for (var i = 0; i < arr.length; i++) {
newarr.push(arr[i].join(","));
}
return newarr.join("\n");
}
尚未测试但应该有效:)