有啥方法可以在 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】:

您可以简单地将每个项目的latitudelongitute 属性解析为数字并将它们添加为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 中找到像素的颜色?

有啥方法可以从 ImageButtons 中删除灰色背景?

在 UWP Javascript 中,有啥方法可以检测到辅助窗口已关闭?

有啥通用方法可以从矩阵中删除 NaN?