将元素排列到哈希数组中

时间:2012-07-26 10:25:06

标签: javascript arrays json recursion hash

我试图将javascript对象分解为小数组,这样我就可以在需要时轻松访问内层数据。

我使用递归函数来访问json中的所有节点,使用程序

http://jsfiddle.net/SvMUN/1/

我在这里要做的是,我想将它们存储到一个单独的数组中,以便我像

一样访问它
newArray.Microsoft= MSFT, Microsoft;
newArray.Intel Corp=(INTC, Fortune 500);
newArray.Japan=Japan
newArray.Bernanke=Bernanke;

每个数组的深度都不同,因此单个级别的深度可以使用与示例Bernanke中显示的相同的名称。有可能这样做吗?

1 个答案:

答案 0 :(得分:1)

不,您将Facets缩减为名为html的字符串 - 但您需要一个对象。

function generateList(facets) {
    var map = {};
    (function recurse(arr) {
        var join = [];
        for (var i=0; i<arr.length; i++) {
            var current = arr[i].term; // every object must have one!
            current = current.replace(/ /g, "_");
            join.push(current);  // only on lowest level?
            if (current in arr[i]) 
                map[current] = recurse(arr[i][current]);
        }
        return join;
    })(facets)
    return map;
}

Demo on jsfiddle.net

要获取单级数据,您可以在if:

之后添加此else语句
            else
                map[current] = [ current ]; // create Array manually

Altough我认为结果(demo)没有多大意义。