前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >通用封装函数——四则运算

通用封装函数——四则运算

作者头像
cnguu
发布2020-10-23 16:00:11
4940
发布2020-10-23 16:00:11
举报
文章被收录于专栏:凉风有信

# 加法

代码语言:javascript
复制
add = (v1, v2) => {
    v1 += '';
    v2 += '';
    let r1, r2;
    try {
        r1 = v1.toString().split('.')[1].length;
    } catch (e) {
        r1 = 0;
    }
    try {
        r2 = v2.toString().split('.')[1].length;
    } catch (e) {
        r2 = 0;
    }
    const m = 10 ** Math.max(r1, r2);
    return (mul(v1, m) + mul(v2, m)) / m;
};

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

# 减法

代码语言:javascript
复制
sub = (v1, v2) => {
    return add(v1, -v2);
};

1 2 3

# 乘法

代码语言:javascript
复制
mul = (v1, v2) => {
    v1 += '';
    v2 += '';
    let m = 0;
    const s1 = v1.toString();
    const s2 = v2.toString();
    try {
        m += s1.split('.')[1].length;
    } catch (e) {
    }
    try {
        m += s2.split('.')[1].length;
    } catch (e) {
    }
    return (Number(s1.replace('.', '')) * Number(s2.replace('.', ''))) / 10 ** m;
};

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

# 除法

代码语言:javascript
复制
div = (v1, v2) => {
    v1 += '';
    v2 += '';
    let t1 = 0,
        t2 = 0;
    try {
        t1 = v1.toString().split('.')[1].length;
    } catch (e) {
    }
    try {
        t2 = v2.toString().split('.')[1].length;
    } catch (e) {
    }
    const r1 = Number(v1.toString().replace('.', ''));
    const r2 = Number(v2.toString().replace('.', ''));
    return (r1 / r2) * 10 ** (t2 - t1);
};

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

# 其它

# 正数向上取整

代码语言:javascript
复制
// 3453.1 → 4000
ceil = v1 => {
    v1 = Math.ceil(v1);
    if (v1 === 0) return v1;
    let num = Math.pow(10, v1.toString().length - 1);
    return mul(Math.ceil(div(v1, num)), num);
};

1 2 3 4 5 6 7

# 首字母大写

代码语言:javascript
复制
// github → Github
firstUpper = str => {
	return str.charAt(0).toUpperCase() + str.slice(1);
};

1 2 3 4

# 对象 Key Value 反转

代码语言:javascript
复制
obj_flip = obj => {
    return Object.keys(obj).reduce((acc, key) => {
        acc[obj[key]] = key;
        return acc;
    }, {});
};

1 2 3 4 5 6

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/9/23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 加法
  • # 减法
  • # 乘法
  • # 除法
  • # 其它
    • # 正数向上取整
      • # 首字母大写
        • # 对象 Key Value 反转
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档