All answers return the first smallest word of the string based on the length of the word.
But if you need JavaScript to declare the lowest of the smallest words of the same length, for example, between a
and b
or between B
and a
or between uma
and com
?
See the results below:
("b"<"a") ? console.log("b é menor que a"): console.log("b não é menor que a");
("B"<"a") ? console.log("B é menor que a"): console.log("B não é menor que a");
("áma"<"com") ? console.log("áma é menor que com"): console.log("áma não é menor que com");
General rule for string comparisons with JavaScript.
For string comparisons, JavaScript converts each character of a string to its ASCII value. Each character, starting with the left operator, is compared to the corresponding character in the right operator.
Understand that JavaScript does not compare 7
with 8
, but rather its ASCII values
which are respectively 055
and 056
In the case of a
with b
compares 097
(a) with 098
(b)
In the case of B
with a
compares 066
(B) with 097
(a)
In the case of áma
with com
compares 225 109 097
(ama) with 099 111 109
(com) . Thus, from left to right 099
is less than 225
For this type of comparison the code is:
function MenorMesmo(str) {
var strSplit = str.split(' '),
maisLonga, menor, menorOld;
maisLonga = strSplit.length;
for(var i = 0; i < strSplit.length; i++){
if(strSplit[i].length <= maisLonga){
maisLonga = strSplit[i].length;
menor = strSplit[i] ;
menor>menorOld?menor=menorOld:menor;
menorOld=strSplit[i];
}
}
return menor;
}
console.log(MenorMesmo("Se perguntar ao JavaScript qual é a menor palavra entre todas as de menores comprimento E u U a A Á ÁUÁ quem você acha que retornará"));
console.log(MenorMesmo('uma frase com duas palavras com mesmo comprimento quero saber qual palavra será considerada menor pelo JavaScript, isso mesmo porque HUMANOS responderão primeira que lerem'));
ASCII Table
25.08.2018 / 16:56