Muszę uzyskać ostatni element podzielonej tablicy z wieloma separatorami. Separatory to przecinki i spacja. Jeśli nie ma separatorów, powinien zwrócić oryginalny ciąg.
Jeśli ciąg brzmi „jak się masz, dzisiaj?” powinien zwrócić „dzisiaj?”
Jeśli dane wejściowe to „hello”, dane wyjściowe powinny być „hello”.
Jak mogę to zrobić w JavaScript?
javascript
split
JJJ
źródło
źródło
pieces.pop()
aby uzyskać ostatni element tablicy.var last = str.split(/[\s,]+/).pop()
Na wszystko jest jedna linijka. :)
źródło
split
wywołanie, i tak nie jest zachowywana. Oryginalny ciąg nie jest zmieniany przez usunięcie elementu z tablicy.{1,}
, tzn.[, ]+
Dopasowuje jeden lub więcej znaków w zestawie (przecinek i spacja). Jest to przydatne, gdy chcesz wszystkie słowa z ciągu, ale gdy chcesz tylko ostatnie słowo, nie robi to żadnej funkcjonalnej różnicy, zmniejsza jedynie obciążenie, ponieważ w tablicy będzie mniej ciągów.źródło
.split(',').pop()
działa dla ostatniego elementu na łańcuch oddzielony przecinkami. Tylko mówię, bo wprowadziła mnie w błąd niesamowita odpowiedź Guffy, po prostu zignorowałem ją, ponieważ nie potrzebowałem wyrażenia regularnego i myślałem, że sztuczka już tam jest! : PMożesz także rozważyć odwrócenie tablicy i zabranie pierwszego elementu. W ten sposób nie musisz wiedzieć o długości, ale nie przynosi to żadnych realnych korzyści i wadę, że operacja odwrotna może potrwać dłużej przy dużych tablicach:
Jest to łatwe, ale modyfikuje również oryginalną tablicę. To może, ale nie musi stanowić problemu.
Odniesienie: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse
Prawdopodobnie możesz chcieć tego użyć:
źródło
.pop()
metoda jest najlepszą odpowiedzią, jaką do tej pory widziałem. Właśnie dlatego został stworzony!Najlepszy w historii i mój ulubiony.
źródło
A jeśli nie chcesz konstruować tablicy ...
Podział w języku angielskim to:
Zamień tylko mówi, że zamień cały ciąg znaków na rzeczy po ostatnim separatorze.
Możesz więc zobaczyć, jak można to ogólnie zastosować. Uwaga: oryginalny ciąg nie jest modyfikowany.
źródło
źródło
Możesz uzyskać dostęp do indeksu tablicy bezpośrednio:
var csv = 'zero,one,two,three'; csv.split(',')[0]; //result: zero csv.split(',')[3]; //result: three
źródło