underscore.js

http://underscorejs.org/docs/underscore.html
源碼與我的實(shí)現(xiàn)對比:


function max()

_.max = function(obj, iteratee, context) {
    var result = -Infinity, lastComputed = -Infinity,
        value, computed;
    if (iteratee == null && obj != null) {
      obj = isArrayLike(obj) ? obj : _.values(obj);
      for (var i = 0, length = obj.length; i < length; i++) {
        value = obj[i];
        if (value > result) {
          result = value;
        }
      }
    } else {
      iteratee = cb(iteratee, context);
      _.each(obj, function(value, index, list) {
        computed = iteratee(value, index, list);
        if (computed > lastComputed || computed === -Infinity && result === -Infinity) {
          result = value;
          lastComputed = computed;
        }
      });
    }
    return result;
  };
imax = function(list, iteratee, context){
    let slist = [];
    let maxCursor = -1;
    let max = Number.NEGATIVE_INFINITY;
  list.forEach(function(n){
    let s = iteratee(n);
    let sn = Number(s);
    if(sn!=NaN){
        slist.push(sn);
    }
  })
  for (var i in slist) {
    if(slist[i]>max){
        max = slist[i];
        maxCursor = i;
    }
  }
  return list[maxCursor]
}

ie8 forEach 實(shí)現(xiàn)

if(!Array.prototype.forEach){
Array.prototype.forEach = function(fun){
 var length = this.length;
  for(var i = 0; i<length; i++){
    fun.call(this, this[i], i, this)
}}
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容