javascript過濾陣列中的元素簡單介紹

antzone發表於2017-04-07

在ES5中新增了具有此功能的方法,具體可以參閱javascript Array filter()一章節。

但是此方法具有一定的瀏覽器相容性問題,下面就模擬實現此方法。

程式碼例項如下:

[JavaScript] 純文字檢視 複製程式碼
if (!Array.prototype.filter) {
  Array.prototype.filter = function (fun/*, thisp*/) {
    var len = this.length >>> 0;
    if (typeof fun != "function") {
      throw new TypeError();
    }
    var res = new Array();
    var thisp = arguments[1];
    for (var i = 0; i < len; i++) {
      if (i in this) {
        var val = this[i]; // 放置fun修改了this
        if (fun.call(thisp, val, i, this)) {
          res.push(val);
        }
      }
    }
    return res;
  };
}

相關文章