您的位置:首页 > Web前端 > JavaScript

JS数组方法扩展

2011-09-21 09:37 393 查看
/****************************************************
*CreateBy:joe zhou
*CreateDate:2011-9-20
*Description:数组统计函数
****************************************************/
$.extend({
max: function (arr) {
return cacl(arr, function (item, max) {
if (!(max > item)) {
return item;
}
else {
return max;
}
});
},
min: function (arr) {
return cacl(arr, function (item, min) {
if (!(min < item)) {
return item;
}
else {
return min;
}
});
},
sum: function (arr) {
return cacl(arr, function (item, sum) {
if (typeof (sum) == 'undefined') {
return item;
}
else {
return sum += item;
}
});
},
avg: function (arr) {
if (typeof (arr) == 'undefined' || arr.length == 0) {
return 0;
}
return this.sum(arr) / arr.length;
}
});

$.fn.extend({
max: function () {
return $.max(this.get());
},
min: function () {
return $.min(this.get());
},
sum: function () {
return $.sum(this.get());
},
avg: function () {
return $.avg(this.get());
}
});

function cacl(arr, callback) {
var ret;
for (var i=0; i<arr.length;i++) {
ret = callback(arr[i], ret);
}
return ret;
}

Array.prototype.max = function () {
return cacl(this, function (item, max) {
if (!(max > item)) {
return item;
}
else {
return max;
}
});
};
Array.prototype.min = function () {
return cacl(this, function (item, min) {
if (!(min < item)) {
return item;
}
else {
return min;
}
});
};
Array.prototype.sum = function () {
return cacl(this, function (item, sum) {
if (typeof (sum) == 'undefined') {
return item;
}
else {
return sum += item;
}
});
};
Array.prototype.avg = function () {
if (this.length == 0) {
return 0;
}
return this.sum(this) / this.length;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: