如何在javascript中删除数组中的引号?

时间:2016-05-16 07:29:27

标签: javascript php arrays regex

这里我有一个数组。这是一个时间数组。

time = ["19.00","19.01","19.34","19.37","20.05","20.12","10.54","11.12"];

我想删除所有这些引号。

time = [19.00,19.01,19.34,19.37,20.05,20.12,10.54,11.12];

实际上,我将所有这些数据都从Redis中获取为数组。

将数据传递给javascript。

var httptime1 = '<?php echo json_encode($httptime1); ?>';

我曾经以这种方式删除引号,

for (var i = 0; i < time1.length; i++)
{
    time1[i] = time1[i].replace(/"/g, " ");
}

但不行。

你能建议我,这是最好的方法吗?

4 个答案:

答案 0 :(得分:5)

您在JavaScript数组的元素中没有引号。当你想要的是一组数字时,你所拥有的是一个字符串数组。

解决方案是在JavaScript中进行转换:

var httptime1 = <?php echo json_encode($httptime1); ?>.map(Number);

但最干净的可能是从源头转换:

var httptime1 = <?php echo json_encode(array_map('floatval', $httptime1)); ?>;

修改

那些看起来更像是小时:分钟而不是像一些真实的数字......这意味着数字毫无用处。不要只是想要

var httptime1 = <?php echo json_encode($httptime1); ?>;

(请注意,我删除了单引号,这会阻止您在代码中解析为JS文字数组)

答案 1 :(得分:4)

使用Number构造函数/包装器对象作为Array.map函数的回调(它将每个数组项转换为数字):

var time = ["19.00","19.01","19.34","19.37","20.05","20.12","10.54","11.12"],
    time_new = time.map(Number);

console.log(time_new); // [19, 19.01, 19.34, 19.37, 20.05, 20.12, 10.54, 11.12]

答案 2 :(得分:0)

这些是实际引用还是字符串,你希望它们是浮点数?因为那样你只需做一个字符串转换数字。

答案 3 :(得分:0)

我尝试使用Number函数将字符串更改为数字。

var time = ["19.00","19.01","19.34","19.37","20.05","20.12","10.54","11.12"];
time.forEach(function(a,i){time[i]=Number(a)});  
console.log(time);