首页 > 编程语言 > 详细

中文数组转为数字

时间:2020-10-16 17:28:51      阅读:49      评论:0      收藏:0      [点我收藏+]
		const testPair = [
			[0, ‘零‘],
			[1, ‘一‘],
			[2, ‘二‘],
			[3, ‘三‘],
			[10, ‘一十‘],
			[11, ‘十一‘]
		]
		function transform (str) {
			const numChar = {
				‘零‘: 0,
				‘一‘: 1,
				‘二‘: 2,
				‘三‘: 3,
				‘四‘: 4,
				‘五‘: 5,
				‘六‘: 6,
				‘七‘: 7,
				‘八‘: 8,
				‘九‘: 9
			}
			const levelChar = {
				‘十‘: 10,
				‘百‘: 100,
				‘千‘: 1000,
				‘万‘: 10000,
				‘亿‘: 100000000
			}
			let ary = Array.from(str)
			let temp = 0
			let sum = 0
			for (let i = 0; i < ary.length; i++) {
				let char = ary[i]
				if (char === ‘零‘) continue
				if (char === ‘亿‘ || char === ‘万‘) {
					sum += temp * levelChar[char]
					temp = 0
				} else {
					let next = ary[i + 1]
					if (next && next !== ‘亿‘ && next !== ‘万‘) {
						temp += numChar[char] * levelChar[next]
						i++
					} else {
						temp += numChar[char]
					}
				}
			}
			return sum + temp
		}
		console.log(transform(‘七万八千四百五十六‘))

  

中文数组转为数字

原文:https://www.cnblogs.com/yaxinwang/p/13826166.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!