0

任意の属性を含む JSON 配列で動作する汎用関数を作成しようとしています。以下を考えると:

var propMap = '{"ddColor": "Color","ddSize": "Size", "ddOther": "Other"}'

どちらも指定せずに属性とその値を反復処理するにはどうすればよいですか? つまり、「ddColor」、「ddSize」、または「ddOther」を指定せずに要素を反復したいのです。それでも、名前とその値の両方を繰り返したいと思います。

私は解決策を探しましたが、見つけることができず、jsFiddleで動作させることもできません:

var propMap = '{"ddColor": "Color","ddSize": "Size"}'

for(var x in propMap) {
    // Key: x
    // Value: propMap[x]
    alert(x + ': ' + propMap[x]);
}

上記のコードを実行すると、文字ごとに繰り返されるようです。例:

1: C
2: o
3: l
4: o
5: r
4

1 に答える 1

5

for inループを使用するだけです:

for (var x in propMap) {
    if (propMap.hasOwnProperty(x)) {
        // Key: x
        // Value: propMap[x]
    }
}

それが実際に文字列である場合は、もちろん、最初に JSON を解析する必要があります。

propMap = jQuery.parseJSON(propMap);

ここにも jsFiddle があります。

于 2012-07-01T23:45:56.317 に答える