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

时间:2013-12-10 14:37:05

标签: javascript

我有一长串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]

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

3 个答案:

答案 0 :(得分:5)

如果你真的从大型数组中遇到性能问题(不要'optimize prematurely),你可以使用slice来提取单个字符串并indexOf / {{3}找到自己的位置:

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

答案 1 :(得分:4)

这真的不是浪费空间,因为Javascript几乎没有占用计算机上的任何内存。除非字符串是千兆字节长,否则我不担心。要获得第一个和最后一个,请执行以下操作:

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

答案 2 :(得分:2)

  

我有一长串ISO日期

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

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