当前位置: 首页 > 面试经验 >

度小满三面

优质
小牛编辑
61浏览
2024-10-11

度小满三面

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)) // 万百一万十二万二万千二百二十三三

#面经##秋招##度小满##前端#
 类似资料: