Как отменить только слова определенной длины в строке (JS)? - PullRequest
0 голосов
/ 05 июля 2018

Напишите функцию, которая принимает строку из одного или нескольких слов и возвращает ту же строку, но со всеми пятью или более буквенными словами в обратном порядке. Переданные строки будут состоять только из букв и пробелов. Пробелы будут включены только при наличии более одного слова.

 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 или более, я хочу разделить, повернуть и присоединить это слово. Затем я хочу присоединиться к массиву и отобразить вывод.

Вывод должен быть "Привет, волк!"

Ответы [ 2 ]

0 голосов
/ 05 июля 2018

Вы не обновили массив с обратным значением. Просто верните его в цикл

 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"));
0 голосов
/ 05 июля 2018

Все правильно, так как строки в 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"));
...