🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

js-util-libs

Package Overview
Dependencies
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

js-util-libs - npm Package Compare versions

Comparing version
1.2.3
to
1.2.4
+11
src/number/__tests__/index.spec.js
describe("number相关测试", () => {
it("number函数", () => {
const { largeNumberAdd, largeNumbersMultiply } = require("../index");
//大数相乘 参数需传字符串数字
expect(largeNumbersMultiply("199999990", "9007199254740991")).toBe("1801439760876205652590090")
//大数相加 参数需传字符串数字
expect(largeNumberAdd("199999990", "9007199254740991")).toBe("9007199454740981");
});
});
const { isType } = require("../check/index");
// 大数相加
exports.largeNumberAdd = (a, b) => {
if (isType(a) !== 'String' || isType(a) !== 'String') {
console.error('大数相乘参数请传字符串数字');
return;
}
//取两个数字的最大长度
let maxLength = Math.max(a.length, b.length);
//用0去补齐长度
a = a.padStart(maxLength, 0); //"0009007199254740991"
b = b.padStart(maxLength, 0); //"1234567899999999999"
//定义加法过程中需要用到的变量
let t = 0;
let f = 0; //"进位"
let sum = "";
for (let i = maxLength - 1; i >= 0; i--) {
t = parseInt(a[i]) + parseInt(b[i]) + f;
f = Math.floor(t / 10);
sum = (t % 10) + sum;
}
if (f == 1) {
sum = "1" + sum;
}
return sum;
};
// 大数相乘
exports.largeNumbersMultiply = (num1, num2) => {
if (isType(num1) !== 'String' || isType(num2) !== 'String') {
console.error('大数相加参数请传字符串数字');
return;
}
if (isNaN(num1) || isNaN(num2)) return "";
if (num1 === "0" || num2 === "0") return "0";
let l1 = num1.length,
l2 = num2.length;
let result = [];
for (let i = l1 - 1; i >= 0; i--) {
for (let j = l2 - 1; j >= 0; j--) {
let index1 = i + j;
let index2 = i + j + 1;
let product = num1[i] * num2[j] + (result[index2] || 0);
result[index2] = product % 10;
result[index1] = Math.floor(product / 10) + (result[index1] || 0);
}
}
return result.join("").replace(/^0+/, "");
};
+13
-6

@@ -30,3 +30,3 @@ // 防抖节流

// 原生实现鼠标滚动动画缓冲 滚动到底部 滚动到底部
export { scrollAnimation, scrollToTop ,scrollToBottom}
export { scrollAnimation, scrollToTop, scrollToBottom }
from "./src/scrollAnimation/index.js";

@@ -140,12 +140,19 @@

// 扁平数据结构转Tree 数组乱序 去重 扁平化
export { arrayToTree , arrScrambling, unique, flat}
export { arrayToTree, arrScrambling, unique, flat }
from "./src/array/index.js";
// 1、指定范围随机数 2、随机长度字符串 3、数组随机数
export { randomString, randomRange, randomNum } from "./src/random/index.js"
export { randomString, randomRange, randomNum }
from "./src/random/index.js"
// 数字转为大写金额
export { digitUppercase } from "./src/digitUppercase/index.js"
export { digitUppercase }
from "./src/digitUppercase/index.js"
// 手机号中间四位变*
export { telFormat } from "./src/common/index.js"
// 手机号中间四位变* 字符串首字母大写
export { telFormat, fistLetterUpper }
from "./src/common/index.js"
// 大数相加 大数相乘
export { largeNumberAdd, largeNumbersMultiply }
from "./src/number/index.js"
{
"name": "js-util-libs",
"description": "js常见的函数工具库",
"version": "1.2.3",
"version": "1.2.4",
"author": "fuzhaoyang <932647051@qq.com>",

@@ -87,5 +87,8 @@ "license": "MIT",

"isVersion",
"isPassport"
"isPassport",
"largeNumberAdd",
"largeNumbersMultiply",
"fistLetterUpper"
],
"homepage": "https://github.com/fuzhaoyang/js-util-libs.git"
}
+24
-12

@@ -5,4 +5,7 @@ # js-util-libs(函数库)

js 常见函数工具库
在开发中,我们经常会将一些常用的代码块、功能块进行封装,为的是更好的复用。那么,被抽离出来独立完成功能,通过API或配置项和其他部分交互,便形成了插件(工具函数)。
下面这些是我在工作中积累的一些常用的前端开源工具函数,需要读者根据自己的实际业务需求进行install安装,根据业务需求选用,涵盖率80%以上,欢迎留言交流和补充。^_^
另外,不要重复造轮子,把精力放在业务逻辑上!
## Install(安装)

@@ -48,6 +51,14 @@

19、手机号中间四位变成* (177****698)
19、手机号中间四位变成* (177****698)
20、滚动条滚动
20、字符串首字母大写 (Hello)
21、number边界处理
1.大数相加
2.大数相乘
22、滚动条滚动
1.动画缓冲(scrollAnimation)

@@ -59,3 +70,3 @@

21、时间戳转格式
23、时间戳转格式

@@ -68,3 +79,3 @@ 1:YYYY-MM-DD HH:MM:SS

22、随机数
24、随机数

@@ -77,3 +88,3 @@ 1:指定长度随机字符串

23、6种排序方式
25、6种排序方式

@@ -92,3 +103,3 @@ 1:冒泡排序

24、数组
26、数组

@@ -101,3 +112,3 @@ 1.扁平数据结构转Tree

25、Base64
27、Base64

@@ -108,3 +119,3 @@ 1.加密

26、UTF-8
28、UTF-8

@@ -115,3 +126,3 @@ 1.加密

27、cookie
29、cookie

@@ -124,3 +135,3 @@ 1.设置

28、常用校验
30、常用校验

@@ -176,3 +187,4 @@ 1.邮箱校验

6、不要修改 packjson 版本号,版本号为线上最新用户使用版本
7、Pull requests 测试用例过后,静等作者合代码
7、Pull requests 测试用例过后,静等作者合代码
8、代码合并后,作者会及时发布在npm上,更新修复版本

@@ -179,0 +191,0 @@ ## Contact me(联系我)

// 手机号中间四位变成*
exports.telFormat = (tel) => {
tel = String(tel);
return tel.substr(0,3) + "****" + tel.substr(7);
tel = String(tel);
return tel.substr(0, 3) + "****" + tel.substr(7);
};
// 字符串首字母大写
exports.fistLetterUpper = (str) => {
return str.charAt(0).toUpperCase() + str.slice(1);
};