%w(a b c a c d).uniq
得到各个元素出现的个数:
count_hash = {}
%w(a b c a c d).each do |item|
key = item.to_sym
if count = count_hash[key]
count_hash[key] = count + 1
else
count_hash[key] = 1
end
end
完全没有明白你的意思。
a = []a << {"one" => 1}
a << {"two" => 2} # [{"one"=>1}, {"two"=>2}]
a[1]["two"] = 3 # [{"one"=>1}, {"two"=>3}]
如上,改变了第二个元素的值,第一个元素并没有变。
这个是将一串字符串转化成数组的方法
(1) 在默认无参传入的时候 ,是以空格为间隔 ,获得数组
pry(main)> " now's the time".split=> ["now's", "the", "time"]
(2) 如果接受一个字符参数 ,那么会按照这个字符参数进行分割变成数组
pry(main)> "mellow yellow".split("ello")=> ["m", "w y", "w"]
(3)如果接受的是两个参数 ,后面的参数是用来确定分割数组里面元素的个数,如果在按规则分割的时候 剩下多余的就变成一个元素
pry(main)> "mellow,yellow".split(//,4)=> ["m", "e", "l", "low,yellow"]
(4)当然split 参数 也接受正则表达式,如下
pry(main)> "hi mom".split(%r{\s*})=> ["h", "i", "m", "o", "m"]