Take the last word of a string and put it at the beginning with jQuery

Asked

Viewed 917 times

1

I have the phrase: "Tomorrow it will rain". I want to take the last word and leave it like this: "rain, tomorrow will go".

I’m doing it this way:

var frase = 'Amanhã vai chover';
var palavra = strg.split(' ')[0];// 

I can get the: Tomorrow... Now, how do I get the last one and leave it in the pattern above, using Javascript?

2 answers

4


Three suggestions:

var frase = 'Amanhã vai chover';


// maneira mais moderna A
var palavras = frase.split(' ');
var reordenado1 = `${palavras.pop()}, ${[...palavras].join(' ')}`;
console.log(reordenado1);

// maneira mais moderna B
var palavras = frase.split(' ');
var reordenado2 = [palavras.pop() + ',', ...palavras].join(' ');
console.log(reordenado2);


// maneira mais compatível
var palavras = frase.split(' ');
var reordenado3 = [palavras.pop() + ','].concat(palavras).join(' ');
console.log(reordenado3);

  • The comma was missing after "rain".

  • 1

    @Victorstafusa :o answered before breakfast... corrected! Thank you :)

  • Your answer reminds me that.

  • @Victorstafusa :)

3

There are several forms, but take into consideration this that seems to me to be simple:

var frase = 'Amanhã vai chover'; // A frase em causa
var partes = frase.split(' '); //dividir em partes
var posicao_ultima_palavra = partes.length - 1; //encontrar a ultima posicao ultima palavra
var ultima_palavra = partes[posicao_ultima_palavra]; //pegar na ultima palavra(chover neste caso)
partes.pop();//remover a ultima palavra do array
var primeiras_palavras = '';
partes.forEach(function(palavra){//percorrer o array de palavras para formar a frase depois da virgula
primeiras_palavras += ' '; //espaco entre as palavras
primeiras_palavras += palavra; // a palavra em causa
});
var nova_frase = `${ultima_palavra}, ${primeiras_palavras}`; //resultado da contatencacao

document.querySelector('#result').innerHTML = nova_frase;
<div id="result">
</div>

With the above code, any word you write will have the result you want.

UPDATE

If you want you can use a more short version.

var frase = "Amanhã vai chover"; //A frase em causa
var partes = frase.split(' '); // dividir em partes
var ultima_frase = partes.pop(); // remover a ultima parte com pop e guardar numa variave
var primeiras_palavras = partes.join(' '); // criar uma string separada por espaços(' ') com as partes restantes
var resultado = `${ultima_frase}, ${primeiras_palavras}`; //resultado

document.querySelector('#result').innerHTML = resultado;
<div id="result"></div>

Browser other questions tagged

You are not signed in. Login or sign up in order to post.