3

我有一个变量,其中包含这样的值..

["09:09:49", "00:14:09", "00:05:50", "02:38:02", "01:39:28"]

现在根据我的需要,我必须像这样组成..

[09:09:49, 00:14:09, 00:05:50, 02:38:02, 01:39:28]

为此我尝试了

 callduration=[];
 callduration=["09:09:49", "00:14:09", "00:05:50", "02:38:02", "01:39:28"];
 var newstring = callduration.replace(/\"/g,'');

但它给出了错误..

TypeError: callduration.replace is not a function
var newstr=callduration.replace(/\"/g,'');

请帮我。提前致谢..

4

2 回答 2

2

首先,您必须注意这callduration是一个数组。数组没有replace方法,因此出现错误。

正如@Felix Kling所提到的,引号只是字符串分隔符。它们不是字符串数组中包含的字符串值的一部分。例如,访问callduration[0]时会得到一个包含09:09:49字符序列的字符串。

但是,如果你真的需要一个请求格式的字符串,这里是:

var callduration = ["09:09:49", "00:14:09", "00:05:50", "02:38:02", "01:39:28"];
var newstr = '[' + callduration.join(', ') + ']';
newstr; //"[09:09:49, 00:14:09, 00:05:50, 02:38:02, 01:39:28]"

尽管除非您考虑到一些非常具体的用例,否则这可能不会有太大用处。

于 2013-11-09T05:27:22.927 回答
0

callduration是一个数组。这意味着它包含一个顺序的、有序的项目列表。这些项目必须是可以在 javascript 中存在的东西。由于您的数组存在如下:

["09:09:49", "00:14:09", "00:05:50", "02:38:02", "01:39:28"]

它是一个字符串数组。每个时间值都由其自己的字符串表示。引号实际上并不是字符串的一部分 - 这只是在键入字符串时如何表示字符串。

如果您希望数组是字符串以外的其他内容的数组,则需要指定您希望它是什么数据类型。 09:09:49正如你所问的,它不是合法的 javascript 数据。

您可以使用的一些选择:

  1. 一个数字数组,其中每个数字代表一个时间值(例如自午夜以来的毫秒数)。

  2. Date 对象的数组。

如果您现在有一个字符串数组,并且想要将其转换为上述任一字符串,您将遍历现有数组,将您现在拥有的字符串解析为实际的数字时间,然后将其转换为您的任何数字或对象格式想要在数组中。

于 2013-11-09T05:43:14.350 回答