Мне нужно получить последний элемент разделенного массива с несколькими разделителями. Разделителями являются запятые и пробел. Если разделителей нет, он должен вернуть исходную строку.
Если строка "как дела, сегодня?" должно вернуться "сегодня?"
Если вход был "привет", выход должен быть "привет".
Как я могу сделать это в JavaScript?
javascript
split
JJJ
источник
источник
pieces.pop()
чтобы получить последний элемент вашего массива.var last = str.split(/[\s,]+/).pop()
Есть один вкладыш для всего. :)
источник
split
вызовом, он все равно не сохраняется. Исходная строка не изменяется при извлечении элемента из массива.{1,}
, то есть[, ]+
соответствует одному или нескольким символам в наборе (запятая и пробел). Это полезно, когда вам нужны все слова из строки, но когда вам нужно только последнее слово, это не имеет никакой функциональной разницы, это только уменьшает накладные расходы, так как в массиве будет меньше строк.источник
.split(',').pop()
работает для последнего элемента в строке через запятую. Просто сказал, потому что я был введен в заблуждение удивительным ответом Гуффы, я просто проигнорировал его, потому что не нуждался в регулярном выражении и думал, что трюк был здесь! : PВы также можете рассмотреть возможность перевернуть ваш массив и взять первый элемент. Таким образом, вам не нужно знать о длине, но это не приносит реальных преимуществ и недостатка в том, что обратная операция может занять больше времени для больших массивов:
Это легко, но также изменяет исходный массив, о котором идет речь. Это может или не может быть проблемой.
Ссылка: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse
Вероятно, вы можете использовать это, хотя:
источник
.pop()
метод - лучший ответ, который я когда-либо видел. Вот почему это было создано!Самый лучший и мой любимый.
источник
И если вы не хотите создавать массив ...
Разбивка на английском языке:
Замена только говорит, что замените всю строку материалом после последнего разделителя.
Таким образом, вы можете увидеть, как это можно применять в целом. Обратите внимание, что исходная строка не изменяется.
источник
источник
Вы можете получить доступ к индексу массива напрямую:
var csv = 'zero,one,two,three'; csv.split(',')[0]; //result: zero csv.split(',')[3]; //result: three
источник