Kless
August 30, 2008, 10:11am
1
Why when is showed an array into a variable , it is showed with all
characters followed?
foo = [‘a’, ‘b’, ‘c’]
puts “the content is: #{foo}” # => the content is: abc
I’m supposed that is because at the first it converts the array into a
string. But is there any way of show the elements of array separated?
Kless
August 30, 2008, 11:22am
2
On Sat, Aug 30, 2008 at 9:05 AM, Kless [email protected] wrote:
Why when is showed an array into a variable , it is showed with all
characters followed?
foo = [‘a’, ‘b’, ‘c’]
puts “the content is: #{foo}” # => the content is: abc
puts “#{foo.join(‘,’)}”
Kless
August 30, 2008, 1:35pm
4
On 30.08.2008 10:09, Kless wrote:
Why when is showed an array into a variable , it is showed with all
characters followed?
foo = [‘a’, ‘b’, ‘c’]
puts “the content is: #{foo}” # => the content is: abc
I’m supposed that is because at the first it converts the array into a
string. But is there any way of show the elements of array separated?
irb(main):001:0> foo = %w{a b c}
=> [“a”, “b”, “c”]
irb(main):002:0> foo.to_s
=> “abc”
irb(main):003:0> foo.join ", "
=> “a, b, c”
irb(main):004:0>
Kind regards
robert
Kless
August 30, 2008, 1:50pm
5
Thanks! I was too complicated:
irb(main):001:0> foo = [‘a’, ‘b’, ‘c’]
=> [“a”, “b”, “c”]
irb(main):002:0> s = ‘’
=> “”
irb(main):003:0> foo.each {|x| s += x.to_s + ', '}
=> [“a”, “b”, “c”]
irb(main):004:0> puts s[0…-3]
a, b, c
=> nil
Kless
August 30, 2008, 2:10pm
6
On 30.08.2008 13:45, Kless wrote:
=> nil
If you want to do it manually, I’d rather do something like this:
irb(main):004:0> s = “”
=> “”
irb(main):005:0> foo.each_with_index {|x,i| s << ", " unless i == 0; s
<< i.to_s}
=> [“a”, “b”, “c”]
irb(main):006:0> s
=> “0, 1, 2”
irb(main):007:0>
Or even
irb(main):010:0> foo.inject {|a,b| “#{a}, #{b}”}
=> “a, b, c”
irb(main):011:0> [“a”].inject {|a,b| “#{a}, #{b}”}
=> “a”
irb(main):012:0> [].inject {|a,b| “#{a}, #{b}”}
=> nil
irb(main):013:0>
But note the empty Array case.
Kind regards
robert
Kless
August 30, 2008, 4:25pm
7
Robert K. wrote:
Kind regards
robert
irb(main):006:0> [].inject{|a,b| “#{a}, #{b}” } or “”
=> “”
Kless
August 30, 2008, 1:40pm
8
Kless wrote:
Why when is showed an array into a variable , it is showed with all
characters followed?
foo = [‘a’, ‘b’, ‘c’]
puts “the content is: #{foo}” # => the content is: abc
I’m supposed that is because at the first it converts the array into a
string. But is there any way of show the elements of array separated?
puts foo.inspect
It will look exactly like in irb, because irb uses inspect.
Kless
August 30, 2008, 6:13pm
9
foo = [‘a’, ‘b’, ‘c’]
puts “the content is: #{foo.join(’, ')}.”
Kless
August 30, 2008, 8:27pm
10
Hi –
On Sat, 30 Aug 2008, Michael M. wrote:
Kind regards
robert
irb(main):006:0> [].inject{|a,b| “#{a}, #{b}” } or “”
=> “”
Or:
[].inject {…}.to_s
In any case I think this is a job for #join
David
Kless
August 30, 2008, 10:07pm
11
David A. Black wrote:
=> nil
Or:
[].inject {…}.to_s
In any case I think this is a job for #join
David
Using inject you could do something to each element (capitalize, for
example) at the same time. Though, you could just use arr.map.join if
you wanted to do that.