javascript - objetos - Obtener el último elemento de una matriz de cadena dividida
matrices en javascript (6)
Dando lo siguiente:
var item = "one,two";
var lastItem = item.split(",").pop(-1);
¿Funciona?
Necesito obtener el último elemento de una matriz dividida con múltiples separadores. Los separadores son comas y espacio. Si no hay separadores, debe devolver la cadena original.
Si la cadena es "¿cómo estás? ¿Hoy?" debería regresar "hoy?"
Si la entrada fue "hola", la salida debería ser "hola".
¿Cómo puedo hacer esto en JavaScript?
Hay una sola línea para todo. :)
var output = input.split(/[, ]+/).pop();
Puede acceder al índice de matriz directamente:
var csv = ''zero,one,two,three''; csv.split('','')[0]; //result: zero csv.split('','')[3]; //result: three
Y si no quieres construir una matriz ...
var str = "how,are you doing, today?";
var res = str.replace(/(.*)([, ])([^, ]*$)/,"$3");
El desglose en inglés es:
/(anything)(any separator once)(anything that isn''t a separator 0 or more times)/
El reemplazo simplemente dice reemplazar toda la cadena con las cosas después del último separador.
Para que pueda ver cómo esto se puede aplicar en general. Tenga en cuenta que la cadena original no se modifica.
var str = "hello,how,are,you,today?";
var pieces = str.split(/[/s,]+/);
En este punto, las pieces
es una matriz y pieces.length
contiene el tamaño de la matriz, por lo que para obtener el último elemento de la matriz, se comprueban las pieces[pieces.length-1]
. Si no hay comas o espacios, simplemente emitirá la cadena como se le dio.
alert(pieces[pieces.length-1]); // alerts "today?"
var title = ''fdfdsg dsgdfh dgdh dsgdh tyu hjuk yjuk uyk hjg fhjg hjj tytutdfsf sdgsdg dsfsdgvf dfgfdhdn dfgilkj,n, jhk jsu wheiu sjldsf dfdsf hfdkdjf dfhdfkd hsfd ,dsfk dfjdf ,yier djsgyi kds'';
var shortText = $.trim(title).substring(1000, 150).split(" ").slice(0, -1).join(" ") + "...More >>";