From bdacdfaea9bf4b52770c32d60b7d402b48297c58 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 12 Oct 2019 12:39:29 +0900 Subject: Add `Array#intersection` which is new in Ruby2.7. --- mrbgems/mruby-array-ext/mrblib/array.rb | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'mrbgems/mruby-array-ext/mrblib/array.rb') diff --git a/mrbgems/mruby-array-ext/mrblib/array.rb b/mrbgems/mruby-array-ext/mrblib/array.rb index fa3db3a70..be1676666 100644 --- a/mrbgems/mruby-array-ext/mrblib/array.rb +++ b/mrbgems/mruby-array-ext/mrblib/array.rb @@ -173,6 +173,24 @@ class Array array end + ## + # call-seq: + # ary.intersection(other_ary,...) -> new_ary + # + # Set Intersection---Returns a new array containing elements common to + # this array and other_ary, removing duplicates. + # + # ["a", "b", "c"].union(["c", "d", "a"], ["a", "c", "e"]) + # #=> ["a", "b", "c", "d", "e"] + # + def intersection(*args) + ary = self + args.each do |x| + ary = ary & x + end + ary + end + ## # call-seq: # ary.flatten -> new_ary -- cgit v1.2.3