【问题标题】:Split tuple into two variables将元组拆分为两个变量
【发布时间】:2013-12-10 09:25:42
【问题描述】:
latlng = (58.39847354300152, 15.579836368560791)

我如何拆分上面的元组,所以我得到两个这样的变量

lat = 58.39847354300152
lng = 15.579836368560791

我尝试过像这样使用拆分但没有成功

split = latlng.split(",");
lat = split[0];
lng = split[1];

【问题讨论】:

  • 这样有效吗?只需在浏览器控制台中尝试latlng = (58.39847354300152, 15.579836368560791)
  • Javascript 没有 Tuple 类型,那么你有什么样的值呢?是字符串、数组还是对象?
  • @karthikr 这是有效的语法,但可能不是 OP 所期望的。
  • @karthikr 我认为它是有效的,但它相当于latlng = 15.579836368560791
  • 看起来像一个 python 元组。是不是可能记错了?

标签: javascript split tuples


【解决方案1】:

我将假设 latlng 是一个数组,因为您编写的元组不是存储信息的有效方式。

var latlng = [58.39847354300152, 15.579836368560791];
var lat = latlng[0]; // 58.39847354300152
var lng = latlng[1]; // 15.579836368560791

【讨论】:

    【解决方案2】:

    有趣的是它是一个字符串

    var latlng = "(58.39847354300152, 15.579836368560791)"
    
    // Remove the parentheses and whitespace
    latlng  = latlng.replace(/[() ]/g,'')
    
    // Now your code 
    var split = latlng.split(",");
    var lat = split[0];
    var lng = split[1];
    

    或者正如@wared所说,只匹配数字和小数点

    var latlng = "(58.39847354300152, 15.579836368560791)"
    var split = latlng.match(/\d+\.\d+/g)    
    

    【讨论】:

    • +1 祝你好运 :D 你可以合并 replacesplit 一起使用 match : split = latlng.match(/\d+\.\d+/g)
    【解决方案3】:

    我假设 OP 实际上是在寻找 destructing assignment。虽然,这可能不是当时的语言功能。

    const latLong = [58.39847354300152, 15.579836368560791];
    const [lat, long] = latLong;
    // is equivalent to:
    // const lat = latLong[0];
    // const long = latLong[1];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-08
      • 2012-10-09
      • 2015-01-29
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多