【问题标题】:I want to make an array of hashes from two value arrays [closed]我想从两个值数组中创建一个哈希数组[关闭]
【发布时间】:2020-05-27 13:45:20
【问题描述】:

我有两个数组。一个数组包含经度,另一个数组包含纬度。

我需要创建一个称为标记的哈希数组。每个标记都有一个键纬度和一个相应的值。它还将有一个关键的经度和一个相应的值。如何从两个数组创建一个哈希数组。

我很困,所以任何帮助将不胜感激

我的代码在下面

array_of_lon = [162.143815475374, 168.950878940823, 3.64965696346187, -167.21528146934, 177.219093253956]

array_of_lat = [7.07533432185069, -71.1633951653961, 83.684201546539, -41.7868611360175, 22.3943085903501]

array_of_markers_hashes = []




【问题讨论】:

  • 询问时,我们需要查看您为解决问题所做努力的证据。没有它,您似乎没有尝试并希望我们编写代码。 SO 不是“为我编写代码的网站”,而是我们帮助修复您编写的代码。

标签: arrays ruby hash


【解决方案1】:

试试这个方法

markers = array_of_lon.zip(array_of_lat).map do |lon, lat|
  { latitude: lat, longitude: lon }
end
 => [{:latitude=>7.07533432185069, :longitude=>162.143815475374}, {:latitude=>-71.1633951653961, :longitude=>168.950878940823}, {:latitude=>83.684201546539, :longitude=>3.64965696346187}, {:latitude=>-41.7868611360175, :longitude=>-167.21528146934}, {:latitude=>22.3943085903501, :longitude=>177.219093253956}] 

【讨论】:

    【解决方案2】:

    对于一对值,您可以使用:

    lon = 162.143815475374
    lat = 7.07533432185069
    
    { lon: lon, lat: lat }
    #=> {:lon=>162.143815475374, :lat=>7.07533432185069}
    

    要合并两个数组,有zip

    array_of_lon.zip(array_of_lat)
    #=> [
    #     [162.143815475374, 7.07533432185069],
    #     [168.950878940823, -71.1633951653961],
    #     [3.64965696346187, 83.684201546539],
    #     [-167.21528146934, -41.7868611360175],
    #     [177.219093253956, 22.3943085903501]
    #   ]
    

    最后map 将这些对转换为标记:

    array_of_lon.zip(array_of_lat).map do |lon, lat|
      { lon: lon, lat: lat }
    end
    #=> [
    #     {:lon=>162.143815475374, :lat=>7.07533432185069},
    #     {:lon=>168.950878940823, :lat=>-71.1633951653961},
    #     {:lon=>3.64965696346187, :lat=>83.684201546539},
    #     {:lon=>-167.21528146934, :lat=>-41.7868611360175},
    #     {:lon=>177.219093253956, :lat=>22.3943085903501}
    #   ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-17
      • 2016-02-27
      • 2012-06-17
      • 2021-06-24
      • 2011-05-06
      • 2021-10-13
      相关资源
      最近更新 更多