对象不支持属性或方法“ forEach” IE 11

时间:2018-09-11 04:54:32

标签: javascript jquery arrays internet-explorer

我的代码段如下

data.forEach(function (row) {
var dataRow = [];

columns.forEach(function (column) {

dataRow.push(row[column].toString());
})

这给了我错误data.forEach(function (row) { 。这可以替代什么呢?如何解决?

2 个答案:

答案 0 :(得分:2)

IE11知道forEach语句(是IE 9.0的IE兼容版本,请参见here),但是如果您希望使用而不是forEach,则可以使用{{ 1}}语句,如下所示:

我已经编辑了答案,如果数据对象是数组,请添加对数据对象的检查

for

答案 1 :(得分:0)

对于使用document.querySelectorAll('..').forEach()并在IE 11中说“ forEach不是函数”的这个问题的人,我发现了Reddit上的一个很好用的骇客:

if (typeof NodeList.prototype.forEach !== 'function')  {
    NodeList.prototype.forEach = Array.prototype.forEach;
}

这很完美,它是3行代码,而不是polyfill。

@JoeTaras在他的回答中暗示了这一点(自IE9起,IE Array.forEach),但我仍然认为我的回答会增加价值并会帮助其他用户。