0

必要なときにいつでも内部レベルのデータに簡単にアクセスできるように、JavaScript オブジェクトを小さな配列に分割しようとしています。

プログラムを使用して、再帰関数を使用してjson内のすべてのノードにアクセスしました

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

ここでやろうとしているのは、これらを別の配列に格納して、次のようにアクセスできるようにすることです

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

各配列の深さは異なるため、バーナンキの例で示したように、単一レベルのものは同じ名前を使用できます。このようにすることは可能ですか?

4

1 に答える 1

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

jsfiddle.net のデモ

1 レベルのデータを取得するには、if の後に次の else ステートメントを追加するだけです。

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

結果( demo)はあまり意味がないと思いますが。

于 2012-07-26T10:53:45.580 に答える