IE11で配列のincludesメソッドを使えるようにする方法

【告知】 10/14(土)新潟県上越市でIT勉強会を開催します!!

スポンサーリンク

どうも、イソップです。

IE11では、Array.prototype.includesメソッドがサポートされていないため動作しません。

includesメソッドを使わないのが一番簡単ですが、Polyfill(ポリフィル、代替コード)を実装することで、IE11でも動作させることが出来ます。

Polyfill実装コード

次のコードをサイトで読み込んでいるJSファイルに追加しましょう。

if (!Array.prototype.includes) {
  Object.defineProperty(Array.prototype, 'includes', {
    value: function(searchElement, fromIndex) {

      if (this == null) {
        throw new TypeError('"this" is null or not defined');
      }

      var o = Object(this);
      var len = o.length >>> 0;

      if (len === 0) {
        return false;
      }

      var n = fromIndex | 0;
      var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);

      while (k < len) {
        if (o[k] === searchElement) {
          return true;
        }
        k++;
      }

      return false;
    }
  });
}

コードを追加するだけで、IE11でincludesメソッドが利用できるようになります。


イソップへのお悩み相談募集中

イソップに相談しませんか?

当ブログで紹介しているような、Web制作やフリーランスへの悩みをイソップに相談してみませんか?
回答できることがあれば記事の中でご紹介します。