首先,我想说我知道有一些简单的方法可以解决这个问题,但只是通过谷歌搜索并查看 stackoverflow,似乎没有固定的方法可以解决这个问题,所以我想看看是否有人出来之前遇到过这个问题并提出了一个很好的解决方案。这是我的问题,我想为对象中的每个属性添加一个附加属性。这在较新的 IE 和 Firefox 中运行良好,但会在 IE8 中导致无限循环。
var oObject = { One : '1', Two : '2' };
for ( var key in oObject ) // Loops twice in IE10 and FF, loops infinitely in IE8
{
console.log(oObject[key]);
oObject[key+'_additionalProperty'] = 'Test';
}
有没有办法做到这一点,而不必创建一个保存 oObject 原始值的变量,只是为 oObject 中的每个属性添加一个附加属性?
注意:对于那些 jQuery 粉丝来说,$.each 也有同样的问题。另外,我希望我不能支持 IE8。
更新:
JSFIDDLE:http: //jsfiddle.net/dwaddell/rH89K/
附加信息:我实际上还没有在真正的 IE 浏览器中对此进行测试,我一直在使用 IE10 的开发人员工具,并为浏览器模式选择 IE8,为文档模式选择 IE 8 标准。这可能会有所不同,我不确定。