有啥方法可以在 Javascript 中删除这些引号?
Posted
技术标签:
【中文标题】有啥方法可以在 Javascript 中删除这些引号?【英文标题】:Is there any methods to remove these quotes in Javascript?有什么方法可以在 Javascript 中删除这些引号? 【发布时间】:2021-07-12 02:30:08 【问题描述】:我有一组这样的数据 -
[
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);
obj.forEach(function(item)
var data = latLng: '['+parseFloat(item.latitude)+', '+parseFloat(item.longitude)+']', name: item.user_country_name
location_data.push(data);
)
);
输出:
[
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"
]
但我想要类似以下的内容,我的意思是显示对象的项目,例如 [-33.867851, 151.207321] 不包含 ""quotes;
预期输出:
[
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"
]
【问题讨论】:
latLng: '['+parseFloat(item.latitude)+', '+parseFloat(item.longitude)+']'
首先不要将其生成为字符串。 latLng: [parseFloat(item.latitude), parseFloat(item.longitude)]
How do I return the response from an asynchronous call?
这些答案之一是否解决了您的问题?如果没有,您能否提供更多信息来帮助回答?否则,请考虑标记最能解决您的问题的答案(上/下投票箭头下的复选标记)。见What should I do when someone answers my question? 和How does accepting an answer work?
@Nick 这些答案都没有解决我的问题。我必须从 php 端修复它。
您无法从 PHP 端解决此问题,因为这不是问题所在。问题出在你的 JS 代码中,这就是答案告诉你如何解决的问题。
【参考方案1】:
您可以简单地将每个项目的latitude
、longitute
属性解析为数字并将它们添加为latLng
数组的两个元素。
Array.map 是最合适的迭代和转换方式。
const arr = [
latitude: "-33.23", longitude: "44.22", user_country_name: "Italy", user_country_code: "-", total_visitors: 4,
latitude: "-15.25", longitude: "66.55", user_country_name: "Spain", user_country_code: "-", total_visitors: 4
]
const output = arr.map(item =>
return
name: item.user_country_name,
latLng: [+item.latitude, +item.longitude]
)
console.log(output)
【讨论】:
以上是关于有啥方法可以在 Javascript 中删除这些引号?的主要内容,如果未能解决你的问题,请参考以下文章
为啥要避免动态 SQL 查询?有啥建议可以删除坏的部分并使用这些吗?
有啥方法可以在不使用 getImageData() 的情况下在 JavaScript 中找到像素的颜色?