如何在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);