2024-10-11 度小满三面
问
- 介绍小红书项目
- 介绍字节项目
- 函数式编程,面向对象
- 手写题,一个函数,对传入的数组排序,改变了原数组,改成纯函数
toSorted, 拷贝再排序
- nodejs 中遇到多个地方更改一个公共变量如何处理
- 科里化有什么好处和问题
提到了测试,确实没咋想到
- 手写一个金额转换函数,数字->中文,12223333 -> 一千二百二十二万三千三百三十三
// 我这样写的,还需要debug,不够完善
// 最后反问给的思路是用俩个队列,一个维护数字,一个维护单位,最后处理一下0的情况
const NUM_CN_MAP = {
0: '',
1: '一',
2: '二',
3: '三',
4: '四',
5: '五',
6: '六',
7: '七',
8: '八',
9: '九',
}
const MID_CN_MAP = {
0: '',
1: '十',
2: '百',
3: '千',
}
const WAN_CN_MAP = {
0: '',
1: '万',
2: '亿',
// ...
}
// 122,2233 -> 一百二十二万,两千二百三十三
// 1222,2222,0000 -> 一千二百二十二亿,二百二十二万
const numToCn = num => {
let temp = num
let ans = ''
let mid = 0
let wanMid = 0
while (temp > 0) {
let temp2 = temp % 10
ans = MID_CN_MAP[mid] + NUM_CN_MAP[temp2] + ans
let tempMid = (mid + 1) % 4
if (!tempMid) wanMid++
ans = WAN_CN_MAP[wanMid] + ans
mid = tempMid
temp = Math.floor(temp / 10)
}
return ans
}
console.log(numToCn(1222233)) // 万百一万十二万二万千二百二十三三
#面经##秋招##度小满##前端#