Напишите функцию, которая принимает предложение в качестве входных данных и выводит отсортированное предложение. - PullRequest
1 голос
/ 14 марта 2019

Мне нужно написать функцию, которая принимает предложение в качестве ввода и выводит отсортированное предложение.и существует два критерия:

  1. Каждый символ слова должен быть расположен в алфавитном порядке

  2. Слова должны быть расположены в порядке возрастания в зависимости отчисло символов

Примечание: - Слово может состоять только из строчных букв

Пример:

Inputs str = "Она живет с ним в маленькой квартире"

Output =" a inhs его hitw eilsv allms aaemnprtt "

Вот мой код.

function makeAlphabetSentenceSort(str) {

  var sens = str.split(' ');
  sens.sort(function(a, b) {
    return a.length - b.length;
    console.log(sens);
  });



  function alphaSort(b) {

    var x = b.split("");
    console.log(x.sort().join(""));

  }


  for (var i = 0; i <= sens.length - 1; i++) {
    console.log(alphaSort(sens[i]));

  }

}

console.log(makeAlphabetSentenceSort("she lives with him in a small enter code hereapartment"));

Я не совсем понимаю, как это решить.Любое предложение, пожалуйста?

1 Ответ

1 голос
/ 14 марта 2019

Похоже, ваш код в основном работает.Мне удалось получить правильный вывод, заменив 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"));

Я бы также для удобства чтения переписал код следующим образом:

  1. Удалите alphaSort как функцию, так как она не должна быть функцией втекущий контекст.
  2. использование ключевого слова let вместо ключевого слова var для создания переменной output.
  3. создание переменной 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"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...