Ответ 1
Используйте & метод Array который для заданного пересечения.
Например:
> [1,2,3] & [2,3,4] & [0,2,6]
=> [2]
Я пытаюсь найти значения пересечения между несколькими массивами.
например
code1 = [1,2,3]
code2 = [2,3,4]
code3 = [0,2,6]
Таким образом, результат будет 2
Я знаю в PHP, вы можете сделать это с помощью array_intersect
Мне захотелось легко добавить дополнительный массив, поэтому я действительно не хочу использовать несколько циклов
Любые идеи?
Спасибо, Алекс
Используйте & метод Array который для заданного пересечения.
Например:
> [1,2,3] & [2,3,4] & [0,2,6]
=> [2]
Если вам нужен более простой способ сделать это с помощью массива с неизвестной длиной, вы можете использовать команду inject.
> arrays = [code1,code2,code3]
> arrays.inject(:&) # Ruby 1.9 shorthand
=> [2]
> arrays.inject{|codes,x| codes & x } # Full syntax works with 1.8 and 1.9
=> [2]