【问题标题】: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)]
  • 这些答案之一是否解决了您的问题?如果没有,您能否提供更多信息来帮助回答?否则,请考虑标记最能解决您的问题的答案(上/下投票箭头下的复选标记)。见What should I do when someone answers my question?How does accepting an answer work?
  • @Nick 这些答案都没有解决我的问题。我必须从 PHP 端修复它。
  • 您无法从 PHP 端解决此问题,因为这不是问题所在。问题出在你的 JS 代码中,这就是答案告诉你如何解决的问题。

标签: javascript jquery arrays json ajax


【解决方案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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-13
    相关资源
    最近更新 更多