手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >JavaScript 5 新增 Array 方法实现介绍
JavaScript 5 新增 Array 方法实现介绍
摘要:复制代码代码如下:/*!*jLipJavaScriptLibraryv0.1**Copyright2012,Lip2up(lip2up@qq...

复制代码 代码如下:

/*!

* 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);

}

});

})();

【JavaScript 5 新增 Array 方法实现介绍】相关文章:

JavaScript中的bold()方法使用详解

JavaScript中reduce()方法的使用详解

Javascript中For In语句用法实例

简介JavaScript中getUTCMonth()方法的使用

JavaScript实现鼠标拖动效果的方法

JavaScript中toString()方法的使用详解

在JavaScript中使用开平方根的sqrt()方法

javascript实现行拖动的方法

JavaScript中的blink()方法的使用

JavaScript每天定时更换皮肤样式的方法

精品推荐
分类导航