Skip to main content

Check if key exists in hash in rails

In Ruby on Rails Programming you might have to check if key exists in hash and based on that you might have to perform other operation. There is simple way to detect if key exists in particular hash.


Ruby Hashes
:

Ruby hash contains Key-Value pairs. In Ruby, you can create a simple hash as follows,

my_hash = {}

Above code will initialize empty hash. Let's add some key value pair in the my_hash

my_hash['name'] = 'Ruby in Rails'

The above code will add 'name' key and 'Ruby in Rails' as it's value. Let's add one more key-value pair in the my_hash

my_hash['type'] = 'Ruby Programming Tutorials'



Now,
How to check if key exists in hash

You can check if particular key exists in a hash or not by using has_key? method available for the hash object in ruby.
Syntax     Description
hash#has_key? 'sample'     This will return true/false by checking if key 'sample' exists in hash object for which the method is invoked

my_hash.has_key? 'name'

=> true
This will return true as 'name' key exists in the my_hash hash

my_hash.has_key? 'abc'

=> false

Above code returns false as my_hash doesn't contain any key with named 'abc'


Performance of Hash#has_key? versun Array#include?
Parameter     Hash#has_key?     Array#include
Time Complexity     o(1) operation     o(n) operation.
Access Type     Accesses Hash[key] if it returns any value then true is returned to the Hash#has_key? call     Iterates through each element of the array till it finds the value in Array

You can find more about ruby hashes and various methods that can be used with hashes on apidock. So we have learned how to check if key exists in hash for Ruby language and compared it with include operation of array and found has_key is is faster as it is o(1) lookup as explained above.

Comments

Popular posts from this blog

Create dynamic sitemap on ruby on rails

Sitemaps are an easy way for webmasters to inform search engines about pages on their sites that are available for crawling. In its simplest form, a Sitemap is an XML file that lists URLs for a site along with additional metadata about each URL (when it was last updated, how often it usually changes, and how important it is, relative to other URLs in the site) so that search engines can more intelligently crawl the site. It’s basically a XML file describing all URLs in your page: The following example shows a Sitemap that contains just one URL and uses all optional tags. The optional tags are in italics. <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">    <url>       <loc>http://www.example.com/</loc>       <lastmod>2005-01-01</lastmod>       <changefreq>monthly</changefreq>     ...

Omniauth Linked in Ruby On Rails

def get_linkedin_user_data      omniauth = request.env["omniauth.auth"]      dat=omniauth.extra.raw_info      linked_app_key = "xxxxxxx"      linkedin_secret_key = "yyyyyyy"      client = LinkedIn::Client.new(linked_app_key,linkedin_secret_key)      client.authorize_from_access(omniauth['credentials']['token'],omniauth['credentials']['secret'])      connections=client.connections(:fields => ["id", "first-name", "last-name","picture-url"])      uid=omniauth['uid']      token=omniauth["credentials"]["token"]      secret=omniauth["credentials"]["secret"]   #linked user data     omniauth = request.env["omniauth.auth"]      data             = omniauth.info      user_name...

Install Rvm on ubuntu

sudo apt-get install libgdbm-dev libncurses5-dev automake libtool bison libffi-dev curl -L https://get.rvm.io | bash -s stable source ~/.rvm/scripts/rvm rvm install 2.0.0-p645 rvm use 2.0.0-p645 --default ruby -v rvm gemset create rails3.2.8 rvm gemset use rails3.2.8 gem install rails -v 3.2.8