有没有一种方法可以使用原型JavaScript框架遍历对象的每个属性?
情况是这样的:我得到了一个JSON格式的AJAX响应,看起来像这样:
{foo: 1, bar: 2, barobj: {75: true, 76: false, 85: true}}
如果我在变量response
中计算json响应,我希望能够遍历response.barobj
对象中每个属性,看看哪些索引是真的,哪些是假的。
Prototype同时具有Object.keys()
和Object.values()
,但奇怪的是似乎没有简单的Object.each()
函数!我可以采用Object.keys()和Object.values()的结果,并在迭代其中一个时交叉引用另一个,但这是一种非常复杂的方法,我确信有一种正确的方法可以做到这一点!
发布于 2009-02-25 21:34:31
你必须先使用convert your object literal to a Prototype Hash
// Store your object literal
var obj = {foo: 1, bar: 2, barobj: {75: true, 76: false, 85: true}}
// Iterate like so. The $H() construct creates a prototype-extended Hash.
$H(obj).each(function(pair){
alert(pair.key);
alert(pair.value);
});
发布于 2009-02-25 22:52:11
这里不需要原型: JavaScript有for..in
循环。如果你不确定没有人对Object.prototype
做过手脚,也可以检查一下hasOwnProperty()
,例如
for(var prop in obj) {
if(obj.hasOwnProperty(prop))
doSomethingWith(obj[prop]);
}
https://stackoverflow.com/questions/587881
复制相似问题