我正在尝试编写一个适用于包含任意属性的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
答案 0 :(得分:5)
只需使用for in
loop:
for (var x in propMap) {
if (propMap.hasOwnProperty(x)) {
// Key: x
// Value: propMap[x]
}
}
如果那实际上是一个字符串,你当然需要首先解析JSON:
propMap = jQuery.parseJSON(propMap);