Похоже, ваш код в основном работает.Мне удалось получить правильный вывод, заменив console.log(x.sort().join(""));
на return x.sort().join("");
Мне также пришлось удалить console.log(alphaSort(sens[i]));
в пользу сохранения вывода цикла во временной переменной с именем output
и затем возвратавывод всего цикла в виде строки.
function makeAlphabetSentenceSort(str) {
var sens = str.split(' ');
sens.sort(function(a, b){
return a.length - b.length;
});
function alphaSort(b){
var x = b.split("");
return x.sort().join("");
}
var output = "";
for(var i = 0; i <= sens.length - 1; i++){
output += alphaSort(sens[i]) + " ";
}
return output.trim();
}
console.log(makeAlphabetSentenceSort("she lives with him in a small apartment"));
Я бы также для удобства чтения переписал код следующим образом:
- Удалите alphaSort как функцию, так как она не должна быть функцией втекущий контекст.
- использование ключевого слова
let
вместо ключевого слова var
для создания переменной output
. - создание переменной
output
в верхней части функции (потому что это какJS действительно работает)
function makeAlphabetSentenceSort(str) {
let output = "";
// Sort the initial sentence by words alphabetically.
var sens = str.split(' ');
sens.sort(function(a, b){
return a.length - b.length;
});
for(var i = 0; i <= sens.length - 1; i++){
// Split each word into single characters. Sort the characters and
// join them back as a single string.
output += sens[i].split("").sort().join("");
// Because we want the response to look like a sentence.
output += " ";
}
return output.trim();
}
console.log(makeAlphabetSentenceSort("she lives with him in a small apartment"));