Я пытаюсь проверить, присутствует ли набор объектов, которые я поворачиваю с помощью метода .each, в массиве заданное количество раз? Кто-нибудь знает, если это возможно? Я надеюсь, что я яснопроверка того, существует ли набор объектов в массиве несколько раз RoR
0
A
ответ
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
будет справедливо, если каждая вещь возникает по крайней мере в два раза.
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
Таким образом, число [array.first] дает вам 1. Это потому, что «a» (array.first) присутствует 1 раз внутри list. номер ["c"] даст вам 3.
спасибо! что, похоже, работает, я должен сделать то же самое теперь с форматами дат. И когда я пытаюсь это сделать, он говорит в навигаторе «undefined method each for date format – user2614075
@ user2614075 звучит так, будто вы вызываете' .each' на то, что не является массивом. – MrTheWalrus