我需要用多个分隔符获取拆分数组的最后一个元素。分隔符是逗号和空格。如果没有分隔符,则返回原始字符串。
如果字符串是"how,are you doing, today?"它应该返回"today?"
如果输入是“hello”,输出也应该是“hello”。
如何在JavaScript中做到这一点?
我需要用多个分隔符获取拆分数组的最后一个元素。分隔符是逗号和空格。如果没有分隔符,则返回原始字符串。
如果字符串是"how,are you doing, today?"它应该返回"today?"
如果输入是“hello”,输出也应该是“hello”。
如何在JavaScript中做到这一点?
当前回答
var item = "one,two,three";
var lastItem = item.split(",").pop();
console.log(lastItem); // three
其他回答
您还可以考虑反转数组并取第一个元素。这样你就不需要知道数组的长度,但它并没有带来真正的好处,缺点是反向操作可能会花费更长的时间:
array1.split(",").reverse()[0]
虽然这很简单,但也会修改原来的数组。这可能是个问题,也可能不是。
参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse
也许你会想用这个:
array1.split(",").pop()
你可以直接访问数组索引:
Var CSV = ' 0,1,2,3 '; csv.split (" ") [0];/ /结果:零 csv.split (" ") [3];/ /结果:3
var item = "one,two,three";
var lastItem = item.split(",").pop();
console.log(lastItem); // three
如果你不想构造一个数组……
var str = "how,are you doing, today?";
var res = str.replace(/(.*)([, ])([^, ]*$)/,"$3");
英语的分类如下:
/(anything)(any separator once)(anything that isn't a separator 0 or more times)/
replace表示用最后一个分隔符之后的内容替换整个字符串。
所以你可以看到这是如何应用的。注意原始字符串没有被修改。
这种方式容易理解,而且非常简短。
const output = input.split(',').pop().split(' ').pop();