JS代码

<script>
var taxHelper= {toPureIncome(value, mode=0) {if(isNaN(value)) return 0;if(value<=0) return 0;let taxes = [[//工资[3500, 5000, 8000, 12500, 38500, 58500, 83500, value],[0,       0,    0,     0,     0,     0,     0,     0],[3500, 3500, 3500,  3500,  3500,  3500,  3500,  3500],[0,    0.03, 0.10,  0.20,  0.25,  0.30,  0.35,  0.45],[0,       0,  105,   555,  1005,  2755,  5505, 13505]],[//劳务[800, 4000, 20000, 50000, value],[  0, 0,      0.2,   0.2,   0.2],[  0, 800,      0,     0,     0],[  0, 0.2,    0.2,   0.3,   0.4],[  0, 0,        0,  2000,  7000]]];let levels = taxes[mode];let index = levels[0].findIndex((v) => {return v>=value;});let result = Number.parseFloat(value - (value * (1 - levels[1][index]) - levels[2][index]) * levels[3][index] + levels[4][index]).toFixed(2);return result;},toSellingPrice(value, mode=0) {if(isNaN(value)) return 0;if(value<=0) return 0;let taxes = [[//工资[3500, 4955, 7655, 11255, 30755, 44755, 61005, value],[0,       0,    0,     0,     0,     0,     0,     0],[3500, 3500, 3500,  3500,  3500,  3500,  3500,  3500],[0,    0.03, 0.10,  0.20,  0.25,  0.30,  0.35,  0.45],[0,       0,  105,   555,  1005,  2755,  5505, 13505]],[//劳务[800, 3360, 16000, 37000, value],[  0,    0,   0.2,   0.2,   0.2],[  0,  800,     0,     0,     0],[  0,  0.2,   0.2,   0.3,   0.4],[  0,    0,     0,  2000,  7000]]];let levels = taxes[mode];let index = levels[0].findIndex((v) => {return v>=value;});let result = Number.parseFloat((value - levels[4][index] - levels[2][index] * levels[3][index]) / ( 1 - levels[3][index] + levels[1][index] * levels[3][index])).toFixed(2);return result;}
}
</script>

原理
  充分利用ES6的特点,把工资、劳务在税前、税后的计算转化为json驱动方式。主要实现了两个事:
  

  1. 统一工资、劳务计算个人所得税的方式

    在taxes区域变量中,统一税的计算方式为:(税级-税前定额扣减-税前比例扣减)*对应税率-扣减数的方式。

  2. 充分利用数组的findIndex方法

示例

<script>
alert("工资为10000元(税前)的实际收入为:" + taxHelper.toPureIncome(10000, 0);
alert("工资为10000元(税后)的税前收入为:" + taxHelper.toSellingPrice(10000, 0);
alert("劳务为10000元(税前)的实际收入为:" + taxHelper.toPureIncome(10000, 1);
alert("劳务为10000元(税后)的税前收入为:" + taxHelper.toSellingPrice(10000, 1);
</script>

计算工资、劳务税前或税后收入的JS代码(ES6)相关推荐

  1. React多页面应用5(webpack生产环境配置,包括压缩js代码,图片转码等)

    本教程总共7篇,每日更新一篇,请关注我们!你可以进入历史消息查看以往文章,也敬请期待我们的新文章! 1.React多页面应用1(webpack开发环境搭建,包括Babel.热更新等) ----2017 ...

  2. 安卓运行js代码-完美

    前言 安卓里面做边缘计算的功能,需要动态编辑js代码执行 巨坑 java里面有ScriptEngineManager类,可以执行js 但在安卓里面没有这个类,javax下面的都不能执行 网上说的安卓里 ...

  3. Java计算税后工资和税前工资推算

    计算税后工资(扣税基数base=3500,可以根据最新情况修改,如5000) @Test public void test() {double money = 30000; //税前工资 double ...

  4. 税后工资和税前工资的对应计算

    前段时间参加一个公司的笔试,其中一个题目是实现税前工资和税后工资的相应转化(由税前求税后.由税后求税前).题目介绍如下: 下表是2011年9月1日起调整后现行的7级超额累进税率(原题目中没有最后一列) ...

  5. 知道个税怎么计算工资

    一.知道个税怎么计算工资 1.先计算应纳税所额=总工资-三险金-免征额.三险金:基本养保险失业保险基本医疗保险住房公积金.所税=应纳税所额X税率-速扣数***根据应纳税所额确定相应税率速扣数. 2.法 ...

  6. 7-10 计算工资 (C语言)

    7-10 计算工资 (15 分)某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬:超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬.员工按进公司时间分为新职工 ...

  7. 计算机表格收入水平怎么算,怎么用excel计算工资所得税

    利用Excel表格计算工资所得税?单位工资发放大多采用计算机管理,对一些小企业没有采用工资软件的,一般用Excel表来计算工资.下面小编就教你怎么用excel计算工资所得税. excel计算工资所得税 ...

  8. c++输入错误重新输入_C程序-根据时长和时薪计算工资1.3(解决输入非数字选项退出的bug)...

    程序内容: 提供五种工资菜单,用户自行选择,读取用户输入的工作时长,计算工资和净收入,及其缴纳的税金.(C Primer Plus 第7章 第8题) 程序更新:解决输入非数字选项后退出程序的bug. ...

  9. 7-66 计算工资 (15 分)

    7-66 计算工资 (15 分) 某公司员工的工资计算方法如下:一周内工作时间不超过40小时,按正常工作时间计酬:超出40小时的工作时间部分,按正常工作时间报酬的1.5倍计酬.员工按进公司时间分为新职 ...

最新文章

  1. linux修改bmc ip,RH1288 V2修改BMC IP不生效处理案例
  2. SQLServer中设置XML索引
  3. 字符类型(Java)
  4. 如何开启匿名访问SharePoint 2010里的Client Object Model
  5. Windows-Server下加强系统安全性系列之方案【九】
  6. ansible-playbook如何判断并中断执行
  7. 解锁并设置远程登录尝试次数
  8. wind 下装mysql,windows 下安装MySQL
  9. print($arr,true)的参数true表示将$arr的值返会,而不是打印
  10. 目录_计算机视觉中的数学方法
  11. python笔记:统计字符串里各种字符的个数 + pandas删除某列
  12. PDF虚拟打印机是如何打印文件的
  13. python破解qq空间访问权限_怎么利用爬虫爬取QQ空间中设置了权限的无法正常访问的内容?...
  14. Hash表素数大集合
  15. HTML5框架 iframe用法 实现嵌套 好玩用法
  16. 三极管三种基本放大电路
  17. Linux sublime设置中文,Sublime Text 3 设置为Ubuntu 14.04默认编辑器并支持中文
  18. 【华为OD机试 2023最新 】 最短木板长度(C++ 100%)
  19. 复旦-华盛顿大学EMBA 二十年20人丨徐欣:从外企转战民企的变身
  20. 访问 Android 开发者网站 Go 官网

热门文章

  1. 创建群晖共享文件夹,并进行电脑访问
  2. Python网络爬虫实战:《跨越星弧》TapTap玩家评论的抓取及分析
  3. JavaScript进阶 - 第9章 DOM对象,控制HTML元素
  4. 摄影测量:ERDAS自动、手动和导入特征点对(超详细)
  5. Knime基础数据案例(1)统计数据分组
  6. 工业革命的秋之涟漪(二):从飞桨,走向深度学习产业实践
  7. Arduino红外控制LED灯开关
  8. spyder pyecharts不显示_逆袭的IGZOIPS!微星电竞显示器新品评测:色彩好且拖影少...
  9. 【AI视野·今日CV 计算机视觉论文速览 第215期】Tue, 8 Jun 2021
  10. 2022年Google play admob AdSense 第三方收款指南