2013-04-03 6 views
0

У меня есть строка, и я хочу добавить массив, используя скрипт приложений Google, я начинаю создавать функцию для этого, но я не мог сделать это правильно, кто-то может мне помочь. моя строка в этой форме: «key, type, val, key, type, val, key, type, 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

Еще раз спасибо, что он работает на примере, который вы мне даете, но на самом деле я думаю, что мой случай - это объект, а не строка .. поэтому my tasks_data = ADT # hello word # Process # V1 # A rabiC# 1, Paginator1,10, ADT # hello CM # Процесс # V1 # Французский # 1, Paginator2,1, ADT # hello word # Процесс # V1 # Арабский # 1, окончательный paginator, 120, ADT # привет слово # Процесс # V1 # ArabiC# 1, QC final, 120 ... Я думал, что это была строка, но это кажется объектом, потому что, когда я пробовал вашу функцию, это было erroe: Невозможно найти функцию split в объекте. У вас есть идея, что я должен делать? Пожалуйста . – marwen

+0

Попробуйте task_data.to строку(), чтобы преобразовать ее в строку перед расщеплением. –

Смежные вопросы