亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

JavaScript 5 新增 Array 方法實(shí)現(xiàn)介紹

 更新時(shí)間:2012年02月06日 11:42:29   作者:  
JavaScript 5 發(fā)布有一段時(shí)間了,Array 對象新增了很多方法。但在老版本的瀏覽器上還不能使用,得益于 JavaScript 的動(dòng)態(tài)可擴(kuò)展性,我實(shí)現(xiàn)了這些方法,在此曬出來與君共勉
復(fù)制代碼 代碼如下:

/*!
* jLip JavaScript Library v0.1
*
* Copyright 2012, Lip2up (lip2up@qq.com)
* Just for free use, NO LICENSE
*/
(function() {
function extend(target, props) {
for (var m in props) {
if (target[m] === undefined) target[m] = props[m];
}
}
var fns = { every: 1, some: 2, forEach: 3, map: 4, filter: 5 },
reduceError = 'Reduce of empty array with no initial value';
function each(fn, _this, kind) {
var len = this.length, ret = kind == fns.filter ? []
: kind == fns.map ? Array(len) : undefined,
find = kind == fns.some, i, v;
for (i = 0; i < len; i++) {
if (this[i] !== undefined) {
v = fn.call(_this, this[i], i, this);
switch (kind) {
case fns.every:
case fns.some:
if (v === find) return find;
break;
case fns.map:
ret[i] = v;
break;
case fns.filter:
if (v === true) ret[ret.length] = this[i];
break;
}
}
}
return kind >= fns.forEach ? ret : !find;
}
function reduce(fn, init, right) {
var len = this.length, i, prev, inc = right ? -1 : 1;
if (len == 0 && init === undefined)
throw TypeError(reduceError);
for (i = right ? len - 1 : 0, prev = init;
prev === undefined && (right ? i >= 0 : i < len);
i += inc) {
prev = this[i];
}
if (prev === undefined && i == (right ? -1 : len))
throw TypeError(reduceError);
for (; (right ? i >= 0 : i < len); i += inc) {
if (this[i] !== undefined)
prev = fn(prev, this[i], i, this);
}
return prev;
}
extend(Array.prototype, {
every: function(fn, _this) {
return each.call(this, fn, _this, fns.every);
},
some: function(fn, _this) {
return each.call(this, fn, _this, fns.some);
},
forEach: function(fn, _this) {
return each.call(this, fn, _this, fns.forEach);
},
map: function(fn, _this) {
return each.call(this, fn, _this, fns.map);
},
filter: function(fn, _this) {
return each.call(this, fn, _this, fns.filter);
},
reduce: function(fn, init) {
return reduce.call(this, fn, init);
},
reduceRight: function(fn, init) {
return reduce.call(this, fn, init, true);
}
});
})();

相關(guān)文章

  • js實(shí)現(xiàn)右鍵彈出自定義菜單

    js實(shí)現(xiàn)右鍵彈出自定義菜單

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)右鍵彈出自定義菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • 簡單了解微信小程序的目錄結(jié)構(gòu)

    簡單了解微信小程序的目錄結(jié)構(gòu)

    這篇文章主要介紹了簡單了解小程序的目錄結(jié)構(gòu),在開發(fā)小程序之前,我們首先需要對其目錄結(jié)構(gòu)進(jìn)行了解,以便于提升開發(fā)效率,需要的朋友可以參考下
    2019-07-07
  • 在textarea文本域中顯示HTML代碼的方法

    在textarea文本域中顯示HTML代碼的方法

    這篇文章主要為大家介紹下如果在textarea文本域中顯示HTML代碼,其實(shí)多用于網(wǎng)頁編輯的開發(fā),大家可以參考下
    2007-03-03
  • js實(shí)現(xiàn)頁面導(dǎo)航層級指示效果

    js實(shí)現(xiàn)頁面導(dǎo)航層級指示效果

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)頁面導(dǎo)航層級指示效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • Javascript刷新窗口方法小結(jié)

    Javascript刷新窗口方法小結(jié)

    這篇文章主要介紹了Javascript刷新窗口方法,以實(shí)例形式分析了JavaScript刷新窗口的四種常用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-10-10
  • javascript連續(xù)賦值問題

    javascript連續(xù)賦值問題

    本文通過具體的示例來給大家詳細(xì)解釋了下javascript的連續(xù)賦值問題,十分的實(shí)用,有需要的小伙伴可以參考下。
    2015-07-07
  • 最新評論