jQuery与原生JS数组统计方法扩展实现

作者:函数茶馆

时间:2026-10-28

浏览:515

本文介绍了如何通过jQuery的$.extend和$.fn.extend分别扩展全局数组统计函数与jQuery对象方法,同时演示了直接扩展Array.prototype实现原生JS数组的max、min、sum和avg统计功能。核心逻辑基于自定义cacl遍历函数,支持对数值数组进行最大值、最小值、求和及平均值计算,并包含对空数组或undefined输入的边界处理。

文章目录

jQuery全局与对象方法扩展

代码实现如下:

/****************************************************
*CreateBy:joe zhou
*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;
        }
}
    }
});
$.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());
    }
});
核心遍历计算函数caclfunction cacl(arr, callback) {
var ret;
for (var i=0; i<arr.length;i++) {
ret = callback(arr[i], ret);
    }
}
}
原生Array原型链方法扩展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;
    }
}
};

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章