获取分割字符串数组的最后一个元素

我需要用多个分隔符获取拆分数组的最后一个元素。分隔符是逗号和空格。如果没有分隔符,则返回原始字符串。

如果字符串是"how,are you doing, today?"它应该返回"today?"

如果输入是“hello”,输出也应该是“hello”。

如何在JavaScript中做到这一点?

381150 次浏览

const str = "hello,how,are,you,today?"
const pieces = str.split(/[\s,]+/)
const last = pieces[pieces.length - 1]


console.log({last})

此时,pieces是一个数组,而pieces.length包含数组的大小,因此要获取数组的最后一个元素,请检查pieces[pieces.length-1]。如果没有逗号或空格,它将简单地输出给定的字符串。

alert(pieces[pieces.length-1]); // alerts "today?"

每件事都有一句话。:)

var output = input.split(/[, ]+/).pop();

如果你不想构造一个数组……

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表示用最后一个分隔符之后的内容替换整个字符串。

所以你可以看到这是如何应用的。注意原始字符串没有被修改。

var item = "one,two,three";
var lastItem = item.split(",").pop();
console.log(lastItem); // three
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 >>";

你可以直接访问数组索引:

var CSV = ' 0,1,2,3 '; csv.split (" ") [0];/ /结果:零 csv.split (" ") [3];/ /结果:三< /代码> < / p >

最好的一个,我最喜欢使用splitslice

const str = "hello, how are you today?"
const last = str.split(' ').slice(-1)[0]
console.log({last})

另一个是使用split,然后使用pop,最后一个。

const str = "hello, how are you today?"
const last = str.split(' ').pop()
console.log({last})

您还可以考虑反转数组并取第一个元素。这样你就不需要知道数组的长度,但它并没有带来真正的好处,缺点是反向操作可能会花费更长的时间:

array1.split(",").reverse()[0]

虽然这很简单,但也会修改原来的数组。这可能是个问题,也可能不是。

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reverse

也许你会想用这个:

array1.split(",").pop()

获取最后一个元素有多种方法

let input='one,two,three,four';


let output1 = input.split(',').pop();
console.log('output1 =',output1);


let split = input.split(',');
let output2 = split[split.length-1];
console.log('output2=',output2);


let output3 = input.split(',').reverse()[0];
console.log('output3=',output3);


let output4 = input.split(',').slice(-1)[0];
console.log('output4=',output4);

这种方式容易理解,而且非常简短。

const output = input.split(',').pop().split(' ').pop();

at()方法接受一个整数值并返回该下标处的项,允许正整数和负整数。负整数从数组的最后一项开始计数。

const str = "how,are you doing, today?";
const last = str.split(/[\s,]+/).at(-1);
console.log({last});

文档链接:Array.prototype.at()