在IE 8 forEach不起作用,如何更改此代码工作

时间:2014-04-03 11:24:38

标签: javascript each

我在JS中有这个代码,在IE8中不起作用。

Offices.forEach(function(trade) {

            console.log('Id for this trade is: '+trade.ID);

           });

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:0)

IE8不支持

foreach(参见documentation)。这是垫片:

if (!Array.prototype.forEach)
{
  Array.prototype.forEach = function(fun /*, thisArg */)
  {
    "use strict";

    if (this === void 0 || this === null)
      throw new TypeError();

    var t = Object(this);
    var len = t.length >>> 0;
    if (typeof fun !== "function")
      throw new TypeError();

    var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
    for (var i = 0; i < len; i++)
    {
      if (i in t)
        fun.call(thisArg, t[i], i, t);
    }
  };
}

或者您可以使用像underscore这样的库,它有自己的跨浏览器实现。