前端手写题合集-Javascript篇(不定时更新)

54 阅读1分钟

数字转汉字函数

function trans(n) { 
    //阿拉伯字符串数字<=>简写汉字
    let unit = '千百十亿千百十万千百十个'
    let nStr = n + ''
    let newStr = ''
    if (!/^([1-9]\d*)/.test(n)) { 
        return '数据格式不对'; 
    }
    let nlength = nStr.length
    if (nStr.length > unit.length) { 
        return '数据过长' 
    }
    unit = unit.substring(unit.length - nlength)
    for (let i = 0; i < nlength; i++) { 
        newStr += ('零一二三四五六七八九'.charAt(nStr[i]) + unit.charAt(i))
    } 
    newStr = newStr.substring(0, newStr.length - 1)
    newStr = newStr.replace(/零(千|百|十)/g, '零').replace(/(零)+/g, '零').replace(/零(亿|万)/g, '$1').replace(/亿万/g, '亿').replace(/^一十/, '十').replace(/零$/, '')
    return newStr
}

删除字符串中出现最少的字符

function delCharLess(str) { 
    let map = {} 
    let delkey = null 
    Object.values(str).forEach(v => { 
        if(!map[v]) { map[v] = 1 } else { map[v]++ } 
    }) 
    const sortArr = Object.keys(map).sort((a, b) => { return map[a] - map[b] }) 
    delkey = sortArr[0] 
    const reg = new RegExp(delkey, "g") 
    return str.replace(reg, '') 
}

生成随机字符串

function generateRandomString(length) { 
    var result = ''
    var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz'
    var charactersLength = characters.length
    for (var i = 0; i < length; i++) { 
        result += characters.charAt(Math.floor(Math.random() * charactersLength))
    } 
    return result; 
}