如何从 Javascript 输出中删除这些引号?
Posted
技术标签:
【中文标题】如何从 Javascript 输出中删除这些引号?【英文标题】:How Can I remove these quotes from the Javascript output? 【发布时间】:2021-07-12 00:41:36 【问题描述】:我有一组这样的数据 -
[
0: latitude: "0", longitude: "0", user_country_name: "-", user_country_code: "-", total_visitors: 4
1: latitude: "-33.867851", longitude: "151.207321", user_country_name: "Australia", user_country_code: "AU", total_visitors: 1
2: latitude: "-23.960831", longitude: "-46.333611", user_country_name: "Brazil", user_country_code: "BR", total_visitors: 1
3: latitude: "45.411171", longitude: "-113.468712", user_country_name: "Canada", user_country_code: "CA", total_visitors: 2
4: latitude: "47.366669", longitude: "8.55", user_country_name: "Switzerland", user_country_code: "CH", total_visitors: 1
]
我通过使用得到结果
var location_data = [];
$.ajax(
type: "GET",
url: url,
data: data,
success: function(data)
var obj = JSON.parse(data);
console.log(obj)
obj.forEach(function(item)
var data = latLng: [parseFloat(item.latitude), parseFloat(item.longitude)], name: item.user_country_name
location_data.push(data);
)
);
console.log(location_data)
输出:类似的东西
[
0: latLng: Array(2), name: "-"
1: latLng: Array(2), name: "Australia"
2: latLng: Array(2), name: "Brazil"
3: latLng: Array(2), name: "Canada"
4: latLng: Array(2), name: "Switzerland"
]
但我想要类似以下的内容,我的意思是显示对象的项目,如 [-33.867851, 151.207321] 而不是 array(2);
预期输出:
[
0: latLng: [0,0], name: "-"
1: latLng: [-33.867851, 151.207321], name: "Australia"
2: latLng: [-23.960831, -46.333611], name: "Brazil"
3: latLng: [45.411171, -113.468712], name: "Canada"
4: latLng: [47.366669, 8.55], name: "Switzerland"
]
【问题讨论】:
如果你想要文本,为什么要将它设置为一个对象到innerhtml?您可以使用 JSON.stringify() 但它会添加比您可能想要的更多的引号...... 对不起,这是我的错误。我已经更新了这个问题。谢谢。 您正在打印控制台中的结果?见this 【参考方案1】:输入数据本身的纬度/经度为字符串,而不是数字。字符串是任何类型的文本,用 "" 引号括起来,就像在您的输入数据中一样。您需要将其转换为数字。对于我们人类来说,“-33.867851”和-33.867851在直觉上是一样的。但是对于计算机来说,它们是完全不同的东西:一个是文本,一个是数字,不管文本有没有数字(它可以是任何东西)。
您可以:
直接将纬度/经度作为数字发送(-33.867851 而不是“-33.867851”) 或者,如果您无法控制输入数据,请在您设置数据的 foreach 中使用parseFloat
,例如latLng: [parseFloat(item.latitude), parseFloat(item.longitude)]
将数字的字符串表示形式转换为实际数字。
【讨论】:
谢谢。但是我怎样才能从文本中删除这个数组 2 呢?有什么办法吗? 我不明白你所说的数组 2 是什么意思?【参考方案2】:我认为问题在于您设置数据的那一行。
var data = latLng: [parseFloat(item.latitude), parseFloat(item.longitude)], name: item.user_country_name
您正在创建一个数组,导致打印输出为array(2)
解决方案是在该行中添加单引号或双引号。也不需要解析数据,因为它已经是一个字符串了。
var data = latLng: "["+item.latitude+", "+item.longitude+"]", name: item.user_country_name
【讨论】:
它显示latLng: "[37.56826, 126.977829]", name: "Korea (Republic of)"
但我需要在 latLng 项目中删除 " " 这个引号。我的意思是 - latLng: [37.56826, 126.977829], name: "Korea (Republic of)"以上是关于如何从 Javascript 输出中删除这些引号?的主要内容,如果未能解决你的问题,请参考以下文章