Preciso obter o último elemento de uma matriz dividida com vários separadores. Os separadores são vírgulas e espaço. Se não houver separadores, ele retornará a string original.
Se a string for "como você está hoje?" deve retornar "hoje?"
Se a entrada foi "olá", a saída deve ser "olá".
Como posso fazer isso em JavaScript?
javascript
split
JJJ
fonte
fonte
pieces.pop()
para obter o último item da sua matriz.var last = str.split(/[\s,]+/).pop()
Há uma linha para tudo. :)
fonte
split
chamada, não é mantido de qualquer maneira. A cadeia original não é alterada, exibindo o item da matriz.{1,}
, ou seja,[, ]+
corresponde a um ou mais dos caracteres do conjunto (vírgula e espaço). É útil quando você deseja todas as palavras da string, mas quando você deseja apenas a última palavra, ela não faz nenhuma diferença funcional, apenas reduz a sobrecarga, pois haverá menos strings na matriz.fonte
.split(',').pop()
funciona para o último elemento em uma sequência separada por vírgula. Só estou dizendo que fui enganada pela resposta incrível de Guffa, simplesmente a ignorei porque não precisava de uma expressão regular e achei que o truque estava lá! : PVocê também pode considerar reverter sua matriz e pegar o primeiro elemento. Dessa forma, você não precisa saber sobre o tamanho, mas não traz benefícios reais e a desvantagem de que a operação reversa pode demorar mais com grandes matrizes:
É fácil, mas também modifica a matriz original em questão. Isso pode ou não ser um problema.
Referência: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse
Provavelmente você pode querer usar isso:
fonte
.pop()
método é a melhor resposta que eu já vi até agora. Por isso foi criado!O melhor de sempre e o meu favorito.
fonte
E se você não quiser construir uma matriz ...
O detalhamento em inglês é:
A substituição apenas substitui a cadeia inteira pelo material após o último separador.
Então você pode ver como isso pode ser aplicado em geral. Observe que a seqüência original não é modificada.
fonte
fonte
Você pode acessar o índice da matriz diretamente:
var csv = 'zero,one,two,three'; csv.split(',')[0]; //result: zero csv.split(',')[3]; //result: three
fonte