javascript过滤数组中的元素简单介绍

快乐打工仔 分类:实例代码

在ES5中新增了具有此功能的方法,具体可以参阅javascript Array filter()一章节。

但是此方法具有一定的浏览器兼容性问题,下面就模拟实现此方法。

代码实例如下:

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;
  };
}

回复

我来回复
  • 暂无回复内容