Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Filter/array в браузере ИЕ8 (https://javascript.ru/forum/css-html-internet-explorer/31695-filter-array-v-brauzere-ie8.html)

svs_js 17.09.2012 14:52

Filter/array в браузере ИЕ8
 
var aList = [1, 3, "some string", true, "string two", null, false];
    var res = aList.filter(function (value) {
        if (value && value.constructor == String)
            return true;
    });



Выполнение данного кода приводит к ошибке в ИЕ8.
SCRIPT438: Object doesn't support property or method 'filter'

Не могу понять, в чем причина.

devote 17.09.2012 16:17

Цитата:

Сообщение от svs_js
Не могу понять, в чем причина.

добавьте код:
if (!Array.prototype.filter)
{
  Array.prototype.filter = function(fun /*, thisp */)
  {
    "use strict";
 
    if (this == null)
      throw new TypeError();
 
    var t = Object(this);
    var len = t.length >>> 0;
    if (typeof fun != "function")
      throw new TypeError();
 
    var res = [];
    var thisp = arguments[1];
    for (var i = 0; i < len; i++)
    {
      if (i in t)
      {
        var val = t[i]; // in case fun mutates this
        if (fun.call(thisp, val, i, t))
          res.push(val);
      }
    }
 
    return res;
  };
}


Часовой пояс GMT +3, время: 06:19.