0

Я пытаюсь проверить, присутствует ли набор объектов, которые я поворачиваю с помощью метода .each, в массиве заданное количество раз? Кто-нибудь знает, если это возможно? Я надеюсь, что я яснопроверка того, существует ли набор объектов в массиве несколько раз RoR

ответ

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 будет справедливо, если каждая вещь возникает по крайней мере в два раза.

+0

спасибо! что, похоже, работает, я должен сделать то же самое теперь с форматами дат. И когда я пытаюсь это сделать, он говорит в навигаторе «undefined method each for date format – user2614075

+0

@ user2614075 звучит так, будто вы вызываете' .each' на то, что не является массивом. – MrTheWalrus

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.

 Смежные вопросы

  • Нет связанных вопросов^_^