GitHub仓库链接
如果你喜欢的话千万要给一个star,这对我很重要
前面几篇文章的Tool.js只是是一个雏形(pre-release v1.0.0),这次发正式版了(v1.1.0大更新)
代码贴这里了,但是功能还不太全,之后会增补
/*
* Tool.js - JavaScript Tools Library
* Version: v1.1.0
* Copyright (c) 20XX Robert L. Ryan
* Licensed under the MIT License
* Date: 2025-1-23T20:00:00Z
*/
( function(global){
var t = {}, _t;
t.V = t.v = t.ver = t.version = "v1.1.0";
t.math = {}, t.sort = {}, t.rand = {}, t.types = {}, t.is = {};
//incomplete:t.net, t.dom
//coming soon :)
//math
/*@
* data Array
*/
t.math.sum = function (data) {
return data.reduce(function (sum, value){return sum + value}, 0);
};
/*@
* data Array
*/
t.math.mean = function (data) {
return t.math.sum(data) / data.length;
};
t.math.variance= function (data) {
if (data.length === 0) return 0;
var _mean, _variance, varianceSum;
_mean = t.math.mean(data);
varianceSum = data.reduce(function (sumOfSquares, value){
var diff = value - _mean;
return sumOfSquares + (diff * diff);
}, 0);
var _variance = varianceSum / (data.length - 1);
return _variance;
};
/*@
* num Number
* rootExp Number
*/
t.math.root = function (num, rootExp) {
return Math.pow(num, 1 / rootExp);
};
/*@
* data Array
*/
t.sort.asc = function (data) {
return data.sort(function (a, b) {
return a - b;
});
};
//sort
/*@
* data Array
*/
t.sort.desc = function (data) {
return data.sort(function (a, b) {
return b - a;
});
};
//is
/*@ Following below:
* i __ALLTYPES__
*/
t.is.num = function (i) {
return (typeof i === "number");
};
t.is.str = function (i) {
return (typeof i === "string");
};
t.is.obj = function (i) {
return (typeof i === "object");
};
t.is.arr = function (i) {
return (i instanceof Array);
};
t.is.bool = function (i) {
return (typeof i === "boolean");
};
t.is.NaN = isNaN;
t.is.func = function (i) {
return (typeof i === "function");
};
t.is.undef = function (i) {
return (typeof i === "undefined");
};
t.is.finite = isFinite;
//types
t.types.toString = function (i) {
return String(i);
};
t.types.toArray = function (i) {
return Array(i);
};
t.types.toNumber = function (i) {
return Number(i);
};
t.types.toObject = function (i) {
return Object(i);
};
t.types.toBoolean = function (i) {
return !(!i);
};
//rand
/*@
* min Number
* max Number
*/
t.rand.num = function (min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
};
/*@
* __NO_ARGUMENT__
*/
t.rand.char = function () {
return String.fromCodePoint(t.rand.num(32,126))
};
_t = function () {
return _t.prototype;
};
_t.prototype = t;
global.tool = global.Tool = global.t = _t;
/* loading method:
* var t = new t;
* or
* var t = t();
*/
} )( typeof window !== "undefined" ? window : this )
用法在Github链接的README里面都有,看代码的函数名也能直接看懂,参数类型也标了
这个js库的特点就是命名和用法简便且实用(更重要的原因是github上目前这类都太杂了,我想给它统一一下)
最后再求求大家给这个仓库一个Star好吗(Orz)
谢谢!