2013-04-03 297 views
0

我有一个字符串,我希望把在使用谷歌的数组Google Apps脚本,我开始为这一创建功能,但我不能做正确,有人可以帮我请。 我的字符串是在这种形式:“键,类型,val,键,类型,val,键,类型,val ....” 我想把我的矩阵的每一行中的键和类型和val。字符串转换为矩阵(阵列)

输入代码在这里

function (tasks_data) 
{ 
var data []; 
var cpt=-1; 
    while(tasks_data.length>0) 
    { 
    data[cpt ]= new array(); 
    var key =tasks_data.substring (0,tasks_data.indexof(',')); 
    var type= tasks_data.substring(0,tasks_data.indexof(',')); 
    var val =tasks_data.substring (0,tasks_data.indexof(',')); 
cpt++;      
return tasks_data; 
} 
} 

回答

1

这里工作的例子,我不认为它需要大量的解释...

function xxx(){ // this function to test the "real" function 
Logger.log(toMatrix('a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,0')) 
} 

function toMatrix(tasks_data){ 
    var matrix = []; 
    var row = []; 
    var temp = tasks_data.split(',') 
    var len = temp.length 
    if (len/3 != parseInt(len/3)){return false};// error condition, string must have a length multiple of 3 

    for(n=1;n<len+1;++n){ 
    row.push(temp[n-1]); 
    if(n/3==parseInt(n/3)){matrix.push(row);var row=[]};// each 3 items create a new row 
    } 
    return matrix 
} 

enter image description here

+0

非常感谢你这完美的作品 – marwen

+0

再次感谢你给我的例子,但实际上我认为我的情况是对象不是字符串..所以我的tasks_data = ADT#你好单词#过程#V1#A法国#1,Paginator2,1,ADT#你好单词#处理#V1#阿拉伯语#1,分数符最终,120,ADT#你好单词#处理# V1#阿拉伯语#1,QC最终,120 ...我认为这是一个字符串,但它似乎是一个对象,因为当我尝试你的功能时,它是错误的:无法找到功能拆分对象。你知道我必须做什么?请 。 – marwen

+0

尝试task_data.to string()在分割之前将其转换为字符串。 –