Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中从数组中删除引号?_Javascript_Php_Arrays_Regex - Fatal编程技术网

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

如何在javascript中从数组中删除引号?,javascript,php,arrays,regex,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_encod

这里我有一个数组,它是一个时间数组

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); ?>';
var-httptime1='';
我以前是这样删除引号的

for (var i = 0; i < time1.length; i++)
{
    time1[i] = time1[i].replace(/"/g, " ");
}
for(变量i=0;i
但不起作用


你能告诉我哪种方法最好吗?

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

解决方案是使用JavaScript进行转换:

var httptime1 = <?php echo json_encode($httptime1); ?>.map(Number);
var httptime1=.map(数字);
但最干净的方法可能是在源代码处转换:

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

这些看起来更像小时:分钟,而不是一些真实的数字…这意味着数字是无用的。难道你不想要吗

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

(注意,我删除了单引号,它阻止了在代码中作为JS文本数组进行解析)

这些是实际的引号还是字符串,您希望它们是浮点数?因为这样您只需进行字符串到数字的转换。

使用
number
constructor/wrapper对象作为
Array.map
函数的回调(它会将每个数组项转换为一个数字):


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

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);

返回的时间是字符串数组。您可以使用
isNaN()
parseInt()
parseFloat()简单地将它们映射为double或float检查它是否是一个数字
将其转换为数字。如果您关心这些数字的准确性,您将希望将它们保留为字符串,而不是使用不准确的浮点数。您只需制作
noQuoteTime=time.map(e=>e*1)
你好,兄弟。谢谢你回答我的问题。但是我在使用你的建议时出错了。
xyz.php:227未捕获的TypeError:“[“19.00”、“19.01”、“19.34”、“19.37”、“20.05”、“20.12”、“10.54”、“11.12]”。map不是一个函数,现在它工作正常。谢谢你,很好的解释。简单而重要!
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);