a = %w/cat dog bird/
require 'rambling-trie' # if necessary, gem install rambling-trietrie = Rambling::Trie.create { |trie| a.each do |e| trie << e end }
array.include?(element) # preferred methodarray.member?(element)array.to_set.include?(element)array.to_set.member?(element)array.index(element) > 0array.find_index(element) > 0array.index { |each| each == element } > 0array.find_index { |each| each == element } > 0array.any? { |each| each == element }array.find { |each| each == element } != nilarray.detect { |each| each == element } != nil
Parameter Hash#has_key? Array#include
Time Complexity O(1) operation O(n) operation
Access Type Accesses Hash[key] if it Iterates through each elementreturns any value then of the array till ittrue is returned to the finds the value in ArrayHash#has_key? callcall
Ruby v.2.7.0--------------------First--------------------Running each test 65536 times. Test will take about 5 seconds._array_include? is similar to _array_index_array_index is similar to _array_find_index_array_find_index is faster than _array_any_each by 2x ± 1.0_array_any_each is similar to _array_index_each_array_index_each is similar to _array_find_index_each_array_find_index_each is faster than _array_member? by 4x ± 1.0_array_member? is faster than _array_detect_each by 2x ± 1.0_array_detect_each is similar to _array_find_each--------------------Middle--------------------Running each test 32 times. Test will take about 2 seconds._array_include? is similar to _array_find_index_array_find_index is similar to _array_index_array_index is faster than _array_member? by 2x ± 0.1_array_member? is faster than _array_index_each by 2x ± 0.1_array_index_each is similar to _array_find_index_each_array_find_index_each is similar to _array_any_each_array_any_each is faster than _array_detect_each by 30.000000000000004% ± 10.0%_array_detect_each is similar to _array_find_each--------------------Last--------------------Running each test 16 times. Test will take about 2 seconds._array_include? is faster than _array_find_index by 10.000000000000009% ± 10.0%_array_find_index is similar to _array_index_array_index is faster than _array_member? by 3x ± 0.1_array_member? is faster than _array_find_index_each by 2x ± 0.1_array_find_index_each is similar to _array_index_each_array_index_each is similar to _array_any_each_array_any_each is faster than _array_detect_each by 30.000000000000004% ± 10.0%_array_detect_each is similar to _array_find_each
--------------------Sets vs. Array.include?----------------------------------------First--------------------Running each test 65536 times. Test will take about 1 second._array_include? is similar to _set_include?_set_include? is similar to _set_member?--------------------Middle--------------------Running each test 65536 times. Test will take about 2 minutes._set_member? is similar to _set_include?_set_include? is faster than _array_include? by 1400x ± 1000.0--------------------Last--------------------Running each test 65536 times. Test will take about 4 minutes._set_member? is similar to _set_include?_set_include? is faster than _array_include? by 3000x ± 1000.0