2012-05-03 4 views
1

Входной сигнал:transformation- в массив,

{ key : "value" , 
    list : [ 
    { 
     key : "values1" , 
     list : [ 
      { key : "value2" , list :[{ key : "simpleValue" } ] 
      } 
      ] 
    }, 
    { 
     key : "value3" 
    } 
] 
} 

Выход:

{ключ: [ "значение", "values1", "values2", "simpleeValue", "Значение 3"]}

код, который я написал для конверсии

var outputArray=new Array(); 
var count=0; 
    function recursion(testData){ 



if(testData.key==undefined) 
{ 

return ; 

} 


else 
{ 
    outputArray[count]=testData.key; 
    count++; 

for(var k in testData.list) 
    { 

    testData1=testData.list[k]; 
    recursion(testData1); 
    recursion(testData.key); 
    } 


} 

return outputArray; 
} 

выход только дать мне список значений массива, как [ 'value', 'values1', 'value2', 'simpleValue', 'value3' ], как использовать хэш-метод для получения правильного вывода?

+0

Какой выход вы ожидаете? – Tobi

+0

Вы имеете в виду: {key: ["value", "values1", "values3"]}? – Tobi

+0

Я не понимаю, что вы хотите сделать ... почему вы хотите хэш и для чего? – Tobi

ответ

0

Я получил эту вещь выяснял

var outputArray=new Array(); 

function recursion(testData){ 


if(testData.key==undefined) 
{ 

return ; 

} 


else 
{ 

    //alert(testData.key); 
    outputArray.push(testData.key); 

for(var k in testData.list) 
    { 
    testData1=testData.list[k]; 
    recursion(testData1); 
    recursion(testData.key); 
    } 


} 


var l={}; 
l.key=outputArray; 
return l; 
} 
0

Хм, что-то вроде этого ???

var inpObj = { key : "value" ,list : [ 
        { 
         key : "values1" 
        }, 
        { 
         key : "value3" 
        } 
       ] 
      }; 

var outputObj = new Object; 
var outputArray = new Array(); 

function recursion(testData){ 
    if(testData.key==undefined) 
    { 
     return; 
    } 
    else 
    { 
     var newKey={}; 
     //alert(testData.key); 
     outputArray.push(testData.key); 

     for(var k in testData.list) 
     { 
      testData1=testData.list[k]; 
      recursion(testData1); 
      recursion(testData.key); 
     } 
    } 

    return outputArray; 
} 

recursion(inpObj); 
if (outputObj.key == undefined) outputObj.key = outputArray; 
alert(outputObj.key.join(", ")); 
+0

Это nt wrking !! – user1371896

+0

Какая ошибка вы получаете? У меня есть объект с ключом как «ключ», а ключ имеет массив со значениями. {key: []} – Tobi

+0

массив выходных данных не определен – user1371896