La pregunta es:
Escriba una función que tome una oración como entrada y genere una oración ordenada.
Cada carácter de la palabra debe organizarse en orden alfabético.
Las palabras deben organizarse en orden ascendente según su número de caracteres
Nota: - Word solo puede tener letras minúsculas
Ejemplo :
Entradas str = "ella vive con él en un apartamento pequeño"
Salida = "a in ehs him hitw eilsv allms aaemnprtt"
el error es
// prueba de carrera
"mensaje: La respuesta debe ser válida para cualquier entrada dada".
// pruebas completadas
mi código:
function makeAlphabetSentenceSort(str) { str.toLowerCase(); var word = str.split(' '); for (var j = 0; j < word.length; j++) { word[j] = word[j].split('').sort().join(''); } for (var h = 0; h < word.length - 1; h++) { for (var i = 0; i < word.length - h - 1; i++) { if (String(word[i]).length > String(word[i + 1]).length) { var temp = word[i]; word[i] = word[i + 1]; word[i + 1] = temp; } } } return word.join(' '); } console.log(makeAlphabetSentenceSort("she lives with him in a small apartment")); console.log(makeAlphabetSentenceSort("she lives with him in apartment"));Esto parece un ejercicio de un curso, por lo que no le daré la implementación exacta, pero diré esto:
JavaScript tiene algunas buenas abstracciones que ayudarán.
arreglos
usa String.split() .
"my string".split(' ') para hacer una matriz de palabras."someword".split('') para hacer una matriz de caracteres.Los arreglos se pueden iterar
Use Array.map() para iterar a través de una matriz y devolver algo para cada elemento.
Las matrices se pueden ordenar
Use Array.sort() para ordenar matrices.
Prueba lo siguiente:
function makeAlphabetSentenceSort(str) { var word = str.split(' '); for (var j = 0; j < word.length; j++) { word[j] = word[j].split('').sort().join(''); } return word.sort((a, b) => a.length - b.length).join(' '); } console.log(makeAlphabetSentenceSort('he was curious about how it would taste, so he took a small bite.'));El problema con esa pregunta es que no siguen sus propias reglas que establece
Word solo puede tener letras minúsculas
dicho esto, una oración con puntuación podría atravesar el código.
Entonces, para poder pasar este desafío, también necesitarás intercambiar palabras de la misma longitud entre sí.
¡Espero que encuentres esto útil!