繁体   English   中英

将元素排列到哈希数组中

[英]arranging elements in to a hash array

我正在尝试将javascript对象分解为较小的数组,以便可以在需要时轻松访问内部级别的数据。

我已经使用递归函数使用程序访问json内的所有节点

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

我要在这里做的是,我想将它们存储在一个单独的数组中,这样我就可以像访问它一样

newArray.Microsoft= MSFT, Microsoft;
newArray.Intel Corp=(INTC, Fortune 500);
newArray.Japan=Japan
newArray.Bernanke=Bernanke;

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

不,您可以将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;
}

jsfiddle.net上的演示

要获取一级数据,您可以仅在if之后添加此else语句:

            else
                map[current] = [ current ]; // create Array manually

虽然我认为结果( demo )并不那么有意义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM