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 回答