转换为数组

transformation- in to an array

本文关键字:数组 转换      更新时间:2023-09-26

>输入:

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

输出:

{key : ["value" , "values1" , "values2" , "simpleeValue", "values3"]}

我为转换编写的代码是

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;
}

输出只会给我值列表一个数组,例如 [ "价值", "值1", "值 2", "简单值", "值3"],如何使用哈希方法获得正确的输出?

嗯,像这样的东西??

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(", "));

我把这件事整理好了

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;
}