2017-12-20 23 views
-1

私のjqueryコードの一部は.filter()であり、正しい構文であると言って怒鳴ります。つまり、フィルタがサポートされていません

方法はありますか?

ラインはIE 9 +ないサポートフィルタ

const lines = nar.split("\n").filter(line => line); 
+0

これはjQueryではありません。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter IEのサポートはIE 9+とEdge(下部を参照)です。 – Taplar

+0

Um、サポートされていないフィルタに問題がある場合は、太い矢印の構文に問題があると思います.... – epascarello

+0

'フィルタ 'に何をしたいのか不明です。現時点では、あなたは 'split'(https://jsfiddle.net/7hgLqjk2/)から取得したものと同じデータを返しています。それは冗長です。 – Andy

答えて

1

であるが、それは矢印の機能をサポートしていないかconstは、あなたがそれらを交換する必要がありますあなたはまた、これを回避することができます

var lines = nar.split("\n").filter(function (line) { return line; }); 

babel

しかし、IE <をターゲットにしている場合は、polyfill関数

if (!Array.prototype.filter) 
    Array.prototype.filter = function(func, thisArg) { 
    'use strict'; 
    if (! ((typeof func === 'Function' || typeof func === 'function') && this)) 
     throw new TypeError(); 

    var len = this.length >>> 0, 
     res = new Array(len), // preallocate array 
     t = this, c = 0, i = -1; 
    if (thisArg === undefined) 
     while (++i !== len) 
     // checks to see if the key was set 
     if (i in this) 
      if (func(t[i], i, t)) 
      res[c++] = t[i]; 
    else 
     while (++i !== len) 
     // checks to see if the key was set 
     if (i in this) 
      if (func.call(thisArg, t[i], i, t)) 
      res[c++] = t[i]; 

    res.length = c; // shrink down array to proper size 
    return res; 
    }; 
関連する問題