如何编写JS函数实现首字母缩写生成功能?现有代码运行异常如何修复?
问题分析
words.split(' ')执行后没有将分割得到的单词数组赋值给新变量,原始输入字符串本身不会被split方法修改,这一步的处理结果直接被丢弃。- 循环遍历的对象还是原始字符串
words,相当于逐个读取原字符串的每一个字符取首字母,最终会把整个原字符串(包含空格)原样拼接返回,完全没有按单词取首字母的效果。 - 循环变量
i没有做声明,会自动成为全局变量,存在作用域污染的风险。
调整后可运行代码
function makeAbbr(words) { var text = ''; // 存储split分割得到的单词数组 var wordArr = words.split(' '); // 遍历单词数组而非原始字符串 for (var i = 0; i < wordArr.length; i++) { // 取首字母后转大写,符合缩写的通用格式 text += wordArr[i].substr(0, 1).toUpperCase() } return text } console.log(makeAbbr('java script')) // 输出结果:JS
内容的提问来源于stack exchange,提问作者Сервер Изединов
相关产品推荐
相关产品推荐

