字符串拆分并获取第一次和最后一次出现

String split and get first and last occurrences

本文关键字:最后一次 第一次 拆分 获取 字符串      更新时间:2024-05-28

我有一长串ISO日期:

var str = "'2012-11-10T00:00:00.000Z', '2012-11-11T00:00:00.000Z', ****  '2013-11-12T00:00:00.000Z'";

我只需要得到第一次和最后一次约会。我可以做

var vStr = str.split(',');
vStr[0] and vStr[vStr.length - 1]

但这是浪费记忆,因为我只需要第一次和最后一次。想法?谢谢

如果你真的从大数组中得到了性能问题(不要过早优化),你可以使用slice来提取单个字符串,使用indexOf/lastIndexOf来找到它们的位置:

str.slice(0, str.indexOf(','))
and
str.slice(str.lastIndexOf(',')+1) // 1==','.length

这真的不是浪费空间,因为Javascript几乎不会占用计算机上的任何内存。除非字符串是千兆字节长,否则我不会担心。要获得第一个和最后一个,只需这样做:

arr=str.split(',');
var first=arr.shift(); //or arr[arr.length-1];
var last=arr.pop(); //or arr[0];

我有一长串ISO日期

假设这些都使用时区Z、年份>= 0,并且以相同的方式分隔和引用,则您甚至不必搜索,,因为它们的长度相同。

var first = str.slice(1, 25),
    last = str.slice(-25, -1);

使用substr/substringjsperf是最理想的方式。参见:

https://jsperf.com/slice-vs-substr-vs-substring-vs-split-vs-regexp