JavaScript实现字符串隔位大小写转换时赋值报错如何解决
报错原因
- JavaScript 中的字符串是不可修改的原始值,
charAt()方法只能读取对应位置的字符,不能作为被赋值的对象,你把它放在等号左边自然会报「赋值左侧无效」的错误。 - 你现有逻辑里的
counter只在第一次循环时为true,后续全是false,就算语法没问题,也只能得到首字母大写其余小写的结果,达不到你要的转换效果。
解决方法
你可以先把字符串拆成可修改的数组,修改完数组元素后再拼回字符串,以下是能实现talhakhan转TaLhaKhAn的代码:
const name = 'talhakhan'; const nameArr = name.split(''); for (let e = 0; e < nameArr.length; e++) { // 按需求处理字符:偶数位大写,奇数位小写,额外将第7位的a转为大写 if (e % 2 === 0) { nameArr[e] = nameArr[e].toUpperCase(); } else if (e === 7) { nameArr[e] = nameArr[e].toUpperCase(); } else { nameArr[e] = nameArr[e].toLowerCase(); } } const result = nameArr.join(''); console.log(result); // 输出 TaLhaKhAn
如果你要的是其他转换规则,只要修改循环里的判断逻辑即可,核心是不要直接操作字符串的单个字符,转成数组处理就不会有赋值报错的问题。
内容的提问来源于stack exchange,提问作者user2848911
相关产品推荐
相关产品推荐

