字符串转换为矩阵(阵列)
问题描述:
我有一个字符串,我希望把在使用谷歌的数组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;
}
}
答
这里工作的例子,我不认为它需要大量的解释...
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
}
非常感谢你这完美的作品 – marwen
再次感谢你给我的例子,但实际上我认为我的情况是对象不是字符串..所以我的tasks_data = ADT#你好单词#过程#V1#A法国#1,Paginator2,1,ADT#你好单词#处理#V1#阿拉伯语#1,分数符最终,120,ADT#你好单词#处理# V1#阿拉伯语#1,QC最终,120 ...我认为这是一个字符串,但它似乎是一个对象,因为当我尝试你的功能时,它是错误的:无法找到功能拆分对象。你知道我必须做什么?请 。 – marwen
尝试task_data.to string()在分割之前将其转换为字符串。 –