常规现场面试机智应对小算法(总结个人面试大佬们临时写的小算法)

1.判断一个数字是否是回文

function Check(str){
    if(!str) return ''
    return str === Array.from(str).reverse().join('')
}

2.统计一个字符串出现最多的字母

function count(str) {
  let hash = {}, sub = 0
  while (1) {
    let c = str.charAt(sub)
    if (!c) break
    !hash[c] ? hash[c] = 1 : hash[c]++
    sub++
  }
  return hash
}

 3.快速找出数组中的最大项

const a = [1,3,5,6,9,11]

Math.max(...a) // 11 

Math.min(...a) // 1

 4.随机生成制定长度的字符串

Tip:只能是Math.random()*len ,不能是len+1, 

Q:如何能保证不重复??hash值怎么出来

function randomStr(n) {
  let base = 'abcdefghijklmnopqistuvwxyz9876543210', len = base.length, str = '';
  for (let i = 0; i < n; i++) {
    str += base.charAt(Math.floor(Math.random() * len))
  }
  return str;
}
randomStr(10) //1k82a33xmp

 5.获取指定范围内的随机数80-100

Tip:Math.random 生成[0,1),右侧为开区间

Math.floor(Math.random()*(100-80+1)+80)

6.随机获取数组中的元素, 6代表实际数组的长度

[1,3,5,7,9,10][Math.floor(Math.random()*6)]

7.找到句子中最长的单词,并计算它的长度,MDN上的解释 Array.prototype.sort

'kong de sheng'.split(' ').sort((a,b)=>b.length - a.length)[0]

8.确保字符串中每个首字母大写

'kong de sheng'.split(' ').map(r=>r.charAt(0).toUpperCase()+r.substring(1)).join(' ')

此处省略一万字,累死了,结束

 

 

posted @ 2019-07-19 20:18  Bruce_Grace  阅读(328)  评论(0编辑  收藏  举报