# Prevent duplicate words in array

**URL:** <https://www.ruby-forum.com/t/prevent-duplicate-words-in-array/177539>\
**Category:** Rails\
**Created:** [October 20, 2009, 12:48am UTC](https://www.ruby-forum.com/t/prevent-duplicate-words-in-array/177539 "2009-10-20T00:48:06Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![batmandawg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/6bbea6/32.png) [@batmandawg](https://www.ruby-forum.com/u/batmandawg)\
**Post date:** [October 20, 2009, 12:48am UTC](https://www.ruby-forum.com/t/prevent-duplicate-words-in-array/177539/1 "2009-10-20T00:48:06Z")

</div>

hello,

how do i prevent someone to enter duplicate word

for example,

eat = “”  
data = []

print "what did you eat for dinner?: "  
eat = gets.chomp

data \<\< eat

so let say if they enter a food twice, it would print something like

" #{eat} you already entered that"

i was told to use Array#index, but i have no idea how to use it

thank you

---

<div class="post-metadata">

**Author:** ![batmandawg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/6bbea6/32.png) [@batmandawg](https://www.ruby-forum.com/u/batmandawg)\
**Post date:** [October 20, 2009, 12:56am UTC](https://www.ruby-forum.com/t/prevent-duplicate-words-in-array/177539/2 "2009-10-20T00:56:08Z")

</div>

Quoting First B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> data = []  
> i was told to use Array#index, but i have no idea how to use it

eat = “”  
data = {}  
print "what did you eat for dinner?: "  
eat = gets.chomp

if data[eat]  
puts " #{eat} you already entered that"  
else  
data[eat] = true  
end

HTH,  
Jeffrey

---

<div class="post-metadata">

**Author:** ![batmandawg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/6bbea6/32.png) [@batmandawg](https://www.ruby-forum.com/u/batmandawg)\
**Post date:** [October 20, 2009, 1:12pm UTC](https://www.ruby-forum.com/t/prevent-duplicate-words-in-array/177539/3 "2009-10-20T13:12:15Z")

</div>

Hi

data = []  
eat = gets.chomp  
data.include?(eat) ?"#{eat}you already entered that":data\<\< eat

Sijo

---

<div class="post-metadata">

**Author:** ![batmandawg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/6bbea6/32.png) [@batmandawg](https://www.ruby-forum.com/u/batmandawg)\
**Post date:** [October 20, 2009, 11:38pm UTC](https://www.ruby-forum.com/t/prevent-duplicate-words-in-array/177539/4 "2009-10-20T23:38:33Z")

</div>

A similar method would be to use Array#uniq! ( or maybe uniq)

data = []  
data \<\< gets.chomp  
data.uniq!

Many cats and oh so many ways to skin them.

On Oct 21, 5:04 am, Aldric G. \<rails-mailing-l…@andreas-

---

<div class="post-metadata">

**Author:** ![batmandawg](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/6bbea6/32.png) [@batmandawg](https://www.ruby-forum.com/u/batmandawg)\
**Post date:** [October 20, 2009, 9:04pm UTC](https://www.ruby-forum.com/t/prevent-duplicate-words-in-array/177539/5 "2009-10-20T21:04:06Z")

</div>

First B. wrote:

> hello,
> 
> how do i prevent someone to enter duplicate word
> 
> for example,

irb(main):024:0\> require ‘set’  
=\> []  
irb(main):025:0\> a = Set.new  
=\> #\<Set: {}\>  
irb(main):026:0\> a \<\< “melon”  
=\> #\<Set: {“melon”}\>  
irb(main):027:0\> a \<\< “apple”  
=\> #\<Set: {“apple”, “melon”}\>  
irb(main):028:0\> a \<\< “melon”  
=\> #\<Set: {“apple”, “melon”}\>

Yes, no?
