如何仅反转字符串中特定长度的单词(JS)?
How to reverse only words of a specific length in a string(JS)?
编写一个函数,接受一个或多个单词的字符串,returns 相同的字符串,但所有五个或更多字母的单词被颠倒过来。传入的字符串将仅包含字母和空格。只有出现多个单词时才会包含空格。
function spinWords(string){
//splits string into words separated by a space
var splitStringArray = string.split(" ");
for (var i = 0; i < splitStringArray.length; i++) {
//if the word is more than 5 chars, reverse the word
if (splitStringArray[i].length >= 5) {
splitStringArray[i].split("").reverse().join("");
}
} //end for loop
//join the modified array
var joinString = splitStringArray.join(" ");
return joinString;
} //end function
console.log(spinWords("Hey fellow students"));
我无法反转 5 个或更多字符的单词。我试图首先将字符串拆分为一个字符串数组。然后我尝试评估该数组中每个字符串的长度。如果单词的长度为 5 或更多,那么我想拆分、反转和连接该单词。然后我想加入数组并显示输出。
输出应该是"Hey wollef stneduts"。
一切都是正确的,因为 javascript 中的字符串是不可变的,所以您需要重新分配值。只需更改行:
splitStringArray[i].split("").reverse().join("");
到
splitStringArray[i]=splitStringArray[i].split("").reverse().join("");
function spinWords(string){
//splits string into words separated by a space
var splitStringArray = string.split(" ");
for (var i = 0; i < splitStringArray.length; i++) {
//if the word is more than 5 chars, reverse the word
if (splitStringArray[i].length >= 5) {
splitStringArray[i]= splitStringArray[i].split("").reverse().join("");
}
} //end for loop
//join the modified array
var joinString = splitStringArray.join(" ");
return joinString;
} //end function
console.log(spinWords("Hey fellow students"));
您还没有用反向值更新数组。
只需在循环中重新分配它
function spinWords(string){
//splits string into words separated by a space
var splitStringArray = string.split(" ");
for (var i = 0; i < splitStringArray.length; i++) {
//if the word is more than 5 chars, reverse the word
if (splitStringArray[i].length >= 5) {
splitStringArray[i]=splitStringArray[i].split("").reverse().join("");
}
} //end for loop
//join the modified array
var joinString = splitStringArray.join(" ");
return joinString;
} //end function
console.log(spinWords("Hey fellow students"));
编写一个函数,接受一个或多个单词的字符串,returns 相同的字符串,但所有五个或更多字母的单词被颠倒过来。传入的字符串将仅包含字母和空格。只有出现多个单词时才会包含空格。
function spinWords(string){
//splits string into words separated by a space
var splitStringArray = string.split(" ");
for (var i = 0; i < splitStringArray.length; i++) {
//if the word is more than 5 chars, reverse the word
if (splitStringArray[i].length >= 5) {
splitStringArray[i].split("").reverse().join("");
}
} //end for loop
//join the modified array
var joinString = splitStringArray.join(" ");
return joinString;
} //end function
console.log(spinWords("Hey fellow students"));
我无法反转 5 个或更多字符的单词。我试图首先将字符串拆分为一个字符串数组。然后我尝试评估该数组中每个字符串的长度。如果单词的长度为 5 或更多,那么我想拆分、反转和连接该单词。然后我想加入数组并显示输出。
输出应该是"Hey wollef stneduts"。
一切都是正确的,因为 javascript 中的字符串是不可变的,所以您需要重新分配值。只需更改行:
splitStringArray[i].split("").reverse().join("");
到
splitStringArray[i]=splitStringArray[i].split("").reverse().join("");
function spinWords(string){
//splits string into words separated by a space
var splitStringArray = string.split(" ");
for (var i = 0; i < splitStringArray.length; i++) {
//if the word is more than 5 chars, reverse the word
if (splitStringArray[i].length >= 5) {
splitStringArray[i]= splitStringArray[i].split("").reverse().join("");
}
} //end for loop
//join the modified array
var joinString = splitStringArray.join(" ");
return joinString;
} //end function
console.log(spinWords("Hey fellow students"));
您还没有用反向值更新数组。 只需在循环中重新分配它
function spinWords(string){
//splits string into words separated by a space
var splitStringArray = string.split(" ");
for (var i = 0; i < splitStringArray.length; i++) {
//if the word is more than 5 chars, reverse the word
if (splitStringArray[i].length >= 5) {
splitStringArray[i]=splitStringArray[i].split("").reverse().join("");
}
} //end for loop
//join the modified array
var joinString = splitStringArray.join(" ");
return joinString;
} //end function
console.log(spinWords("Hey fellow students"));