[英]Problem with using change of global variable in loop in JavaScript
我有一个全局变量,我想在一个for循环中更改并稍后在“ for”之外使用它
我想编写代码来更正姓和名。 例如:
用户:NICK WATERSON ...代码:Nick Waterson
用户:尼克·沃特森...代码:尼克·沃特森
用户:nICK WATERNEN ...代码:尼克·沃特森
let fTab = 0; Register: while (true) { var name = prompt('Your fullname:', ''); for (let i = 0; i < name.length; i++) { if (name.charAt(i) == ' ') { fTab = i; break Register; } } alert('Error!!') } name.toLowerCase(); alert('Your name is ' + name.charAt(0).toUpperCase() + name.substr(1, fTab) + name.charAt(i + fTab).toUpperCase() + name.substr(fTab + 2));
程序未返回任何内容,因为找不到'fTab'的值
正如@Quentin在他的评论中提到的,您正在使用一种复杂的方法在TitleCase中命名。 您可以使用以下方式,易于阅读和简洁。
let name = prompt('Your fullname:', ''); let correctedName = name.split(' ') .map(first => first[0].toUpperCase() + first.substr(1).toLowerCase()) .join(' '); console.log(correctedName);
程序对我来说很好用,只需在最后一行1 + fTab
i + fTab
替换为1 + fTab
:
alert('Your name is ' + name.charAt(0).toUpperCase() + name.substr(1, fTab).toLowerCase() + name.charAt(1 + fTab).toUpperCase() + name.substr(fTab + 2).toLowerCase());
将警报行i + fTab
为1 + fTab
AND name = name.toLowerCase();
let fTab = 0;
Register: while (true) {
var name = prompt('Your fullname:', '');
for (let i = 0; i < name.length; i++) {
if (name.charAt(i) == ' ') {
fTab = i;
break Register;
}
}
alert('Error!!')
}
name = name.toLowerCase();
alert('Your name is ' + name.charAt(0).toUpperCase() + name.substr(1, fTab) + name.charAt(fTab + 1).toUpperCase() + name.substr(fTab + 2));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.