Array checking?

hi

i have written a array like this.

my_array = ["one","two","three","four"]

no i want to check a given string is can be found from the above array.

eg:

         if ( my_array.map{"one"} )
           return true;
         else
          return false;
          end

so here if i use "five" insted of "one" it should return false( as i
think) but it does no happen.

(simply want to check a given string is in the array or not)

so if any body can help???

···

--
Posted via http://www.ruby-forum.com/.

Nadeesha Meththananda wrote:

(simply want to check a given string is in the array or not)

if my_array.include?("one")

Best regards,

Jari Williamsson

-------- Original-Nachricht --------

Datum: Thu, 15 Nov 2007 18:59:07 +0900
Von: Nadeesha Meththananda <neranjan125@gmail.com>
An: ruby-talk@ruby-lang.org
Betreff: Array checking ???

hi

i have written a array like this.

my_array = ["one","two","three","four"]

no i want to check a given string is can be found from the above array.

eg:

         if ( my_array.map{"one"} )
           return true;
         else
          return false;
          end

so here if i use "five" insted of "one" it should return false( as i
think) but it does no happen.

(simply want to check a given string is in the array or not)

so if any body can help???
--
Posted via http://www.ruby-forum.com/\.

Dear Nadeesha,

you can use

class Array
    def contains_entry?(entry)
       if self-[entry]==self
              return false
       else
              return true
      end
      end
end

a=["one","two",3,4]
p a.contains_entry?("three")

The idea is to see whether the array stays the same when you take
away something from it - if yes, that something wasn't in the array
in the first place.

Best regards,

Axel

···

--
Psssst! Schon vom neuen GMX MultiMessenger gehört?
Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger

On Nov 15, 2007 5:59 PM, Nadeesha Meththananda > my_array =
["one","two","three","four"]

no i want to check a given string is can be found from the above array.

many ways

try,

~> my_array.index "five"
=> nil

~> my_array.include? "five"
=> false

~> my_array.any?{|e| e== "five"}
=> false

i like index since it's fast and it also returns the position if
found. wish include? would do that too.

anyway, all of those meth above has its unique advantage though. eg,
with any?, you can do fancy search...

kind regards -botp

Others have told you what works. Let's talk about why this doesn't.
What does the map method do? Here's the ri doc

array.map {|item| block } -> an_array

···

On Nov 15, 2007 4:59 AM, Nadeesha Meththananda <neranjan125@gmail.com> wrote:

hi

i have written a array like this.

my_array = ["one","two","three","four"]

no i want to check a given string is can be found from the above array.

eg:

         if ( my_array.map{"one"} )
           return true;
         else
          return false;
          end

so here if i use "five" insted of "one" it should return false( as i
think) but it does no happen.

(simply want to check a given string is in the array or not)

so if any body can help???

------------------------------------------------------------------------
Invokes _block_ once for each element of _self_. Creates a new
array containing the values returned by the block

Normally you have an argument in the block attached to map, to receive
each element of the array, you didn't but Ruby let's you get away with
that.

Now let' run your code and see what the map returns:

my_array = ["one","two","three","four"]

my_array.map{"one"} # => ["one", "one", "one", "one"]

So it's just an array with the same number of elements, each with a
value of "one".

And since it's neither false, nor nil, this will always be treated as
true in a boolean context.

--
Rick DeNatale

My blog on Ruby
http://talklikeaduck.denhaven2.com/

Axel Etzold wrote:

-------- Original-Nachricht --------

Datum: Thu, 15 Nov 2007 18:59:07 +0900
Von: Nadeesha Meththananda <neranjan125@gmail.com>
An: ruby-talk@ruby-lang.org
Betreff: Array checking ???

eg:

(simply want to check a given string is in the array or not)

so if any body can help???
--
Posted via http://www.ruby-forum.com/\.

Dear Nadeesha,

you can use

class Array
    def contains_entry?(entry)
       if self-[entry]==self
              return false
       else
              return true
      end
      end
end

a=["one","two",3,4]
p a.contains_entry?("three")

The idea is to see whether the array stays the same when you take
away something from it - if yes, that something wasn't in the array
in the first place.

Best regards,

Axel

THANKS A LOT PAL

···

--
Posted via http://www.ruby-forum.com/\.

Hi --

···

On Thu, 15 Nov 2007, Axel Etzold wrote:

-------- Original-Nachricht --------

Datum: Thu, 15 Nov 2007 18:59:07 +0900
Von: Nadeesha Meththananda <neranjan125@gmail.com>
An: ruby-talk@ruby-lang.org
Betreff: Array checking ???

hi

i have written a array like this.

my_array = ["one","two","three","four"]

no i want to check a given string is can be found from the above array.

eg:

         if ( my_array.map{"one"} )
           return true;
         else
          return false;
          end

so here if i use "five" insted of "one" it should return false( as i
think) but it does no happen.

(simply want to check a given string is in the array or not)

so if any body can help???
--
Posted via http://www.ruby-forum.com/\.

Dear Nadeesha,

you can use

class Array
   def contains_entry?(entry)
      if self-[entry]==self
             return false
      else
             return true
     end
end

a=["one","two",3,4]
p a.contains_entry?("three")

The idea is to see whether the array stays the same when you take
away something from it - if yes, that something wasn't in the array
in the first place.

No, you definitely don't want to do that, for many reasons. As Jari
said, just use include?

   if array.include?(entry)

David

--
Upcoming training by David A. Black/Ruby Power and Light, LLC:
   * Advancing With Rails, Berlin, Germany, November 19-22
   * Intro to Rails, London, UK, December 3-6 (by Skills Matter)
See http://www.rubypal.com for details!

-------- Original-Nachricht --------

Datum: Thu, 15 Nov 2007 19:51:58 +0900
Von: "David A. Black" <dblack@rubypal.com>
An: ruby-talk@ruby-lang.org
Betreff: Re: Array checking ???

Hi --

>
> -------- Original-Nachricht --------
>> Datum: Thu, 15 Nov 2007 18:59:07 +0900
>> Von: Nadeesha Meththananda <neranjan125@gmail.com>
>> An: ruby-talk@ruby-lang.org
>> Betreff: Array checking ???
>
>>
>>
>> hi
>>
>> i have written a array like this.
>>
>> my_array = ["one","two","three","four"]
>>
>> no i want to check a given string is can be found from the above array.
>>
>> eg:
>>
>> if ( my_array.map{"one"} )
>> return true;
>> else
>> return false;
>> end
>>
>>
>> so here if i use "five" insted of "one" it should return false( as i
>> think) but it does no happen.
>>
>> (simply want to check a given string is in the array or not)
>>
>> so if any body can help???
>> --
>> Posted via http://www.ruby-forum.com/\.
>
> Dear Nadeesha,
>
> you can use
>
> class Array
> def contains_entry?(entry)
> if self-[entry]==self
> return false
> else
> return true
> end
> end
> end
>
> a=["one","two",3,4]
> p a.contains_entry?("three")
>
> The idea is to see whether the array stays the same when you take
> away something from it - if yes, that something wasn't in the array
> in the first place.

No, you definitely don't want to do that, for many reasons. As Jari
said, just use include?

   if array.include?(entry)

David

--
Upcoming training by David A. Black/Ruby Power and Light, LLC:
   * Advancing With Rails, Berlin, Germany, November 19-22
   * Intro to Rails, London, UK, December 3-6 (by Skills Matter)
See http://www.rubypal.com for details!

Dear Nadeesha,

indeed, Jari's solution is way better. Shorter, more elegant.
I wouldn't have written
a post had Jari's response already been on the list.

Best regards,

Axel

···

On Thu, 15 Nov 2007, Axel Etzold wrote:

--
Psssst! Schon vom neuen GMX MultiMessenger gehört?
Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger