0

I'm trying to check if a set of objects which I turn with a .each method are present in an array a given number of times? DOes anyone know if it is possible? I hope I've been clear

4

2 回答 2

1

如果我明白你在问什么,这可能就是你想要的:

list = ["a","b","b","c","c","c"]
array = ["a","b","c"]

假设您在上面有这些数组,运行以下命令将为您提供一个哈希“数字”,其中包含“数组”中的元素出现在“列表”中的次数

number = {}
array.each do |key|
    number[key] = list.select{|item| item == key}.size
end  

这样, number[array.first] 给你 1。那是因为 "a" (array.first) 在list中出现了 1 次。number["c"] 会给你 3。

于 2013-08-29T18:42:08.970 回答
0

假设我理解这个问题:

给定两个数组:

a1 = [1,1,2,3,3,4,5]
a2 = [1,3,5]

您可以通过几种不同的方式检查第二个数组的每个元素在第一个数组中出现的次数。这是一个:

items_present = true
a2.each do |thing|
  if a1.select{|x| x == thing }.size < 2
    items_present = false
    break
  end
end

items_present如果每件事至少出现两次,则为真。

于 2013-08-29T18:26:11.877 回答