我有这段代码,我希望得到一个输出反向字符串,并且只有在最后一个字母是大写的情况下,该字母才会被转换为小写,但它输出字符串的一部分,直到它命中第一个大写字母,而不是整个反转字符串,最后一个字母转换为小写,如果它不是小写的话。
非常感谢任何帮助!提前谢谢!
function stringrev(str) {
var newString = "";
for (var i = str.length - 1; i >= 0; i--) {
// Add each character to newString
newString = newString + str.charAt(i);
if (newString.charAt(newString.length - 1) === newString.charAt(newString.length - 1).toUpperCase()) {
return newString.slice(0, newString.length - 1) + newString.charAt(newString.length - 1).toLowerCase();
}
}
return newString;
}
答案 0 :(得分:3)
更简单一点
function stringrev(str) {
var newString = "";
for (var i = str.length; i--;)
newString += i == str.length-1 ? str.charAt(i).toUpperCase() : str.charAt(i);
return newString;
}
alert(stringrev("asdfasdf"));
https://jsfiddle.net/6xce1m7w/1/
澄清之后,我想你想要这个..function stringrev(str) {
// make thee last letter lower case
str = str.substr(0, str.length-1) + str.charAt(str.length-1).toLowerCase();
// reverse the order
var newString = "";
for (var i = str.length; i--;) newString += str.charAt(i);
return newString;
}
alert(stringrev("asdfasdF"));
答案 1 :(得分:1)
如果在字符串的开头/中间有一个大写字母,那么if语句中的return语句会过早地切断循环。我只是将它移到for循环之外。
long countOfItemsMatchingFilter = yourCollectionName.CountAsync(yourFilterName).Result;