Tag: arrays

清除数组中的空字符串

我正在处理一堆由字符串组成的数组,很多次我写过.delete_if { |str| str.empty? } .delete_if { |str| str.empty? } 现在,我知道我可以自己将这个方法添加到数组类中,但是我希望有一种内置的方法来实现这一点,而不需要在基类中添加非标准方法。 与向基类添加方法一样有趣的是,出于可维护性的原因,我不想这样做。 有没有内置的方法来处理这个?

将字符串ID与BSON :: ObjectId进行比较

我有一个由BSON::ObjectId类型组成的数组,我希望它与一些ID作为字符串进行比较。 if my_array_of_BSON_ObjectIds.include?(@my_id_as_a_string) # delete the item from the array else # add the item to the array as a BSON::ObjectId end 由于类型不同,这不起作用,我可以将我的字符串转换为BSON::ObjectId吗? 如果是这样,怎么样?

在Ruby中加入哈希数组

我正在尝试使用公共密钥加入ruby中的多个哈希数组。 例如: country_info = [ {country_id: “US”, country_desc: “United States”}, {country_id: “AU”, country_desc: “Australia”} ] country_stats = [ {country_id:”US”, pageviews: 150}, {country_id:”AU”, pageviews: 200} ] i_want = [ {country_id: “US”, country_desc: “United States”, pageviews:150}, {country_id: “AU”, country_desc: “Australia”, pageviews:200} ] 这类似于Javascript中protovis的pv.nestfunction。 请参阅: http : //protovis-js.googlecode.com/svn/trunk/jsdoc/symbols/pv.Nest.html 我怎么能在Ruby中做到这一点?

给定一个大小为y的数组,包含大小为n的数组,如何使用Ruby返回所有逻辑组合?

我想要做的是处理n组,而我下面提供的代码恰好适用于4组。 def show_combinations @combos = [] [‘A’, ‘no A’].each do |a| [‘B’, ‘no B’].each do |b| [‘C’, ‘no C’].each do |c| [‘D’, ‘no D’].each do |d| @combos << [a, b, c, d] end end end end end 我如何重构以下代码来处理以下场景:鉴于我有一个大小为y的数组包含大小为n的数组,我想返回所有组合。 重要的是要注意每个子arrays中只有一个项目可以在结果中。 (例如“已完成的配置文件”也不能出现在“未完成配置文件”的结果中) 背景: 用户可能有一些任务:例如,“完成配置文件”或“设置电子邮件”等等。 这些任务可以表示如下: @task_states = [[“Completed Profile, NOT Completed Profile”], [“Set up Email”, “NOT set […]

如何从数组中删除相反的值?

我有一个问题,我正在尝试创建一个方向数组,其中每个方向都不是多余的。 plan = [“NORTH”, “SOUTH”, “SOUTH”, “EAST”, “WEST”, “NORTH”, “WEST”] 正如您所看到的,此计划中的大多数值都是多余的,您也可以简单地告诉该人去”WEST” 。 plan = [“NORTH”, “WEST”, “SOUTH”, “EAST”] 我还希望上面的计划返回一个空数组。

Ruby数组的方法assoc和rassoc的目的是什么?

我已经阅读了Ruby array的方法assoc和rassoc的文档。 我明白他们做了什么。 它们都在数组数组上工作。 assoc返回第一个元素等于提供的参数的数组, rassoc执行相同的操作,但是对于第二个元素。 我的问题是这些方法是什么? 此function非常具体。 我猜这些方法的创建有一些原因。 它是什么?

如何在Ruby中的Array类中对数组的每个元素进行平方?

我的部分代码如下: class Array def square! self.map {|num| num ** 2} self end end 我打电话的时候: [1,2,3].square! 我希望得到[1,4,9],但我得到[1,2,3]。 为什么会这样? 我打电话的时候: [1,2,3].map {|num| num ** 2} 在课堂方法之外,我得到了正确的答案。

rubyarrays内部

如何在内部实现ruby数组(主要在CRuby中,但欢迎任何其他信息)? 它们是可扩展的数组,如c ++向量还是基于列表? shift / unshift和按索引访问元素的复杂性是什么?

严重依赖Ruby数组重新排序

我需要根据依赖元素重新排序数组。 如果一个元素是一个数组(具有依赖性),那么该数组的第二个元素是依赖项,并且需要在该数组之前。 然后删除所有依赖关系信息,因为我们不再需要,我们返回一个更正顺序的数组。 # array1 = [[‘a’], [‘b’,’c’], [‘c’,’a’]] # ordered = [‘a’, ‘c’, ‘b’] # logic: c comes before b, a comes before c 以下是我认为过度设计的方法: array1.each_with_index do |ar, i| # ignore elements without dependencies if ar.count > 1 # get dependency dep = ar[1] # get index for element where this dependency is first […]

Ruby注入直到sum超过设定值并返回发生这种情况的索引

使用以下数组和值: v = 50 a = [10, 20, 25, 10, 15] 我想迭代遍历数组,将这些值相加,直到这些值的总和超过变量v。然后我希望能够返回发生这种情况的数组中的索引。 所以… 10 + 20 + 25 = 55(这是总和大于’v’的第一个点)所以index = 2 谢谢你的帮助