有没有办法使用Prototype JavaScript框架迭代对象的每个属性?
情况就是这样:我在JSON中得到一个AJAX响应,如下所示:
{foo: 1, bar: 2, barobj: {75: true, 76: false, 85: true}}
如果我将json响应评估为变量response
,我希望能够遍历response.barobj
对象中的每个属性,以查看哪些索引为true,哪些为false.
原型有两种Object.keys()
,Object.values()
但奇怪似乎没有一个简单的Object.each()
功能!当我迭代一个时,我可以获取Object.keys()和Object.values()的结果并交叉引用另一个,但这是一个黑客,我相信有一个正确的方法来做到这一点!
这里没有Prototype:JavaScript有for..in
循环.如果您不确定没有人搞砸了Object.prototype
,请检查hasOwnProperty()
,即
for(var prop in obj) { if(obj.hasOwnProperty(prop)) doSomethingWith(obj[prop]); }
您必须先将对象文字转换为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); });