Tag: 数组

基于键合并散列数组中的散列值

我有一系列与此类似的哈希: [ {“student”: “a”,”scores”: [{“subject”: “math”,”quantity”: 10},{“subject”: “english”, “quantity”: 5}]}, {“student”: “b”, “scores”: [{“subject”: “math”,”quantity”: 1 }, {“subject”: “english”,”quantity”: 2 } ]}, {“student”: “a”, “scores”: [ { “subject”: “math”, “quantity”: 2},{“subject”: “science”, “quantity”: 5 } ] } ] 有没有更简单的方法来获得类似于此的输出,除了循环数组并找到重复然后组合它们? [ {“student”: “a”,”scores”: [{“subject”: “math”,”quantity”: 12},{“subject”: “english”, “quantity”: 5},{“subject”: “science”, “quantity”: 5 } ]}, {“student”: “b”, […]

Ruby on Rails – Geocoder对象作为谷歌地图标记数组

我目前正在开发销售代表跟踪工具,并坚持在地图中显示地理编码对象的Markers数组。 我正在使用地理编码器的近距离function来查找从我通过url传递的位置0.5公里的地理编码对象。 我的当前代码只要在该半径内只有一个对象就可以工作,我知道我需要使用一个数组来显示多个对象,但过去两周我一直坚持这一点。 stores_controller.rb def index @latitude = params[:latitude].to_f @longitude = params[:longitude].to_f @stores = current_user.stores @locations = @stores.near([@latitude, @longitude], 0.5) end 我的商店/ index.html.erb上的地图 function initMap() { var lat = var lng = var mylatlng = {lat: lat, lng: lng} var map = new google.maps.Map(document.getElementById(‘map’), { zoom: 15, center: mylatlng }); var marker = new google.maps.Marker({ […]

在Ruby中部分排序数组

我试图按字母顺序对数组排序,排除“其他”这个词,这是我想要在数组末尾的成员。 假设该数组如下所示: cities = [[“Sidney”], [“Other”], [“Melbourne”]] 简单地说, cities.sort只需执行以下操作: [[“Melbourne”], [“Other”], [“Sidney”]] 我希望成员按字母顺序排列在最后的[“Other”] ,如下所示: [[“Melbourne”], [“Sidney”], [“Other”]] 有人能指出我在正确的方向吗?

在Ruby中比较数组的最有效方法

下面的代码应该找到arr_1中缺少的arr_2中的arr_2 。 def compare_1 (arr_1, arr_2) output = [] temp = arr_2.each_with_object(Hash.new(0)) { |val, hsh| hsh[val] = 0 } arr_1.each do |element| if !temp.has_key? (element) output << element end end puts output end def compare_2 (arr_1, arr_2) out = [] arr_1.each do |num| if (!arr_2.include?(num)) out << num end end puts out end 根据’基准’,第一种方法更快,大概是通过使用哈希。 有没有更简洁的方法来写这些或实现这一点? […]

从数组和变量范围中提取索引

我正在运行TestFirstRuby,我一直坚持第12个问题,建立一个反向波兰表示法计算器。 我已经完成了除最后一个测试之外的所有测试,要求我取一个字符串(“1 2 3 * +”然后“1 2 3 * + 4 5 / – ”),然后评估表达式。 我要做的是将字符串转换为数组,将数字转换为整数,将运算符转换为符号,然后遍历数组并在运算符随时计算表达式。 这是代码的相关部分: def initialize @expression = ” end def tokens(string) tokens = string.split(‘ ‘) tokens.map! { |digit| /[0-9]/.match(digit) ? digit.to_i : digit.to_sym } end def evaluate(string) #1 2 3 * + #1 2 3 * + 4 5 – / […]

使用唯一字段返回postgresql查询中的前X个记录

好的,所以我在这里有一点学习的时刻,在找到一种让它发挥作用的方法之后,我很好奇是否有任何有更多postgres经验的人可以帮我找到一种方法来做到这一点而不做一个在场景背后的整个lotta rails(或者我正在尝试获得的每个项目进行单一查询)…现在进行解释: 假设我有1000条记录,我们称之为“实例”,在具有以下字段的数据库中: id user_id other_id 我想创建一个我可以调用的方法,它引入10个实例,这些实例都有一个唯一的other_id字段,用简单的英语(我意识到这不起作用:)): Select * from instances where user_id = 3 and other_id is unique limit 10 因此,不是拉入一个10个实例的数组,其中user_id是3,你可以得到多个实例,其中other_id是5,我希望能够在这10个实例上运行一个map函数并返回类似[1,2, 3,4,5,6,7,8,9,10。 理论上,我现在可能会做两件事之一,虽然我试图避免它们: 存储一组id并进行单独调用,确保下一个调用“不在此数组中”。 这里的问题是我正在做10个单独的数据库查询。 拉入大量的50个实例并在ruby中分类,找到10个独特的实例。 这不允许我利用已经在数据库中完成的任何优化,并且我还冒着查询50个没有10个唯一的other_id的项目的风险,除非我,否则我会被困在那些做了另一个问题。 无论如何,希望有人能够告诉我,我忽略了一个简单的选择:)我知道这是一种优化之前它真的需要但是这个function将会一遍又一遍地运行所以我认为它不是一个现在浪费时间。 为了记录,我使用Ruby 1.9.3,Rails 3.2.13和Postgresql(Heroku) 谢谢! 编辑 :只是想给出一个技术上有效的function的例子(上面的数字1) def getInstances(limit, user) out_of_instances = false available = [] other_ids = [-1] # added -1 to avoid submitting a NULL […]

Ruby删除与数组的任何元素匹配的子字符串

我有一个字符串说str =”this is the string ” ,我有一个字符串数组说 array =[“this is” ,”second element”, “third element”] 我想处理字符串,以便匹配任何数组元素的子字符串应该被删除,其余的字符串应该返回。所以我想要以下输出。 output: “the string ” 我怎么能在ruby中这样做。

在postgresql …查询中加入两个单独的查询…(可能或不可能)

我在postgresql查询中返回第一个X记录并获得了一些很好的帮助, 该查询具有我遇到的问题并尝试尽可能地优化的独特字段 (尽管我通常不是很喜欢前加载优化,这是一种独特的情况)。 想象一下应用中的三个实体: User Post Instance # An instance is just a reference to a post 字段看起来像这样: User id Post id user_id name Instance id user_id post_id helped_by_user_id 要求 : 返回10个实例,其中: user_id不等于3 post_id是独一无二的 post_id没有其他实例,help_by_user_id为3 编辑: 我在http://sqlfiddle.com/#!10/7a324/1/0上为此创建了一个SQLFiddle。 为了记录,我使用Ruby 1.9.3,Rails 3.2.13和Postgresql(Heroku)

散列成分组数组

我不是很有经验的ruby,所以我很难格式化一块数据。 我有这个哈希,它包含一些具有相同值的键,例如: {“key” => “value1”, “key2” => “value2”, “key3” => “value3”, “key4” => “value1”, “key5” => “value2” ..} 我正在尝试将其转换为包含按值分组的键的数组 [[“key”,”key4″],[“key2″,”key5”],[“key3”]] 任何帮助,将不胜感激。

ruby – 如何从字符串数组生成可能的顺序字母组合?

我有一个字符串数组: [“ABC”, “GHI”] ad我想要所有’字母’组合,从左到右读取,即 [“AG”, “AH”, “AI”, “BG”, “BH”, “BI”, “CG”, “CH”, “CI”] 但不是 “GA”, “GB”, “HA”, etc. 同样的, [“ABC”, “DEF”, “GHI”] 应该生成 [“ADG”, “ADH”, “ADI”, “AEG”, “AEH”, “AEI”, “AFG”, “AFH”, “AFI”, “BDG”, “BDH”, “BDI”, “BEG”, “BEH”, “BEI”, “BFG”, “BFH”, “BFI”, “CDG”, “CDH”, “CDI”, “CEG”, “CEH”, “CEI”, “CFG”, “CFH” “CFI”] 但不是 “DAG”, “GAD” or “GFA”