数字转金额大写js方法二

需要清楚的是 基础数字所对应的大写、数字所在位置的量级、金额所对应的单位

主要思路是:

  1. 将数字分为整数部分和小数部分分别处理
  2. 对于数字处理从前往后走,一个一个往后加所以先处理整数再处理小数
  3. 处理时都需要知道数字所对应的大写
  4. 整数处理 先把所有数字的大写 放进去 然后按照写好的从后往前追加 量级
  5. 小数部分直接是 金额单位 从前往后加上就好
function convertCurrency(values){
  if(!values){
    values = 0
  }
  values = (+values).toFixed(2)
  let moneymax = values.split('.')[0]//整数部分
  let moneymin = values.split('.')[1]//小数部分
  let len=moneymax.length//统计出整数部分长度
  let arr=[];
  let str2 = ''
  let chin_list=['零','壹','贰','叁','肆','伍','陆','柒','捌','玖']//数字部分的0-9
  //拼凑结构       千亿 百亿 十亿  亿   千万 百万 十万 万    千   百  十  个
  let chin_lisp=['仟','佰','拾','亿','仟','佰','拾','万','仟','佰','拾']

  for(let i=0;i<len;i++){//整数部分 从前往后 
    arr.push(parseInt(values[i]));
    arr[i]=chin_list[arr[i]]//数字对应大写汉字 纯数字无量级 类似 54321→ 伍肆叁贰壹,但实际应该是→伍万肆仟叁佰贰拾壹
  }
  for(let i=len-1,j=1;i>0;i--){//以整数部分 为基础 j从后往前追加量级
    arr.splice(i,0,chin_lisp[chin_lisp.length-j++])//添加量级
  }
  let arr2=JSON.parse(JSON.stringify(arr))
  for(let i=0;i<arr.length;i++){
    if(arr[i]=='零'){
       arr2[i+1]=''
    }
  }
  for (var i = 0; i < moneymin.length; i++) {//小数部分
    str2 += chin_list[moneymin[i]];//数字对应大写汉字 纯数字无单位 类似 43→ 肆叁,但实际应该是→ 肆角三分
  }
  str2 = str2[0] +'角' +str2[1] + '分'
  arr2=arr2.join('')
  arr2+='元'
  return arr2 + str2
}

复习点:

一、splice() 方法

1、定义和用法

splice() 方法用于添加或删除数组中的元素。

注意:这种方法会改变原始数组。

2、返回值

如果删除一个元素,则返回一个元素的数组。 如果未删除任何元素,则返回空数组。

如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。

3、语法
array.splice(index,howmany,item1,.....,itemX)
  • index:必需。规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
  • howmany:可选。规定应该删除多少元素。必须是数字,但可以是 “0”。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
  • item1, ..., itemX:可选。要添加到数组的新元素
3.1 删除

那么常规写完整就是 array.splice(下标,删除数量,要添加的新元素)
用的比较多的是删除功能 前两项参数很常规

arr.splice(index)
arr.splice(index,howmany)

在这里插入图片描述

3.2新增

新增的话就是

arr.splice(index,0,item)//一个
arr.splice(index,0,item1,.....,itemX)//多个

在这里插入图片描述

那么 arr.splice(i,0,chin_lisp[chin_lisp.length-j++]) 的基本结构就是新增的基本结构 arr.splice(i,0,item) ,这里的 itemchin_lisp[chin_lisp.length-j++]

3.3 替换

替换某项→先删除 再把新的放进去 那就是

arr.splice(index,1,item)//一个
arr.splice(index,1,item1,.....,itemX)//多个

在这里插入图片描述

二、join() 方法

1、定义和用法

join() 方法用于把数组中的所有元素转换一个字符串。

元素是通过指定的分隔符进行分隔的。

2、返回值
  • String,返回一个字符串。该字符串是通过把 arrayObject 的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入 separator 字符串而生成的。
3、语法
array.join(separator)
  • separator:可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。

在这里插入图片描述

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伊昂呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值