icps

notes

Array

array <===> hash

1
2
3
4
5
6
7
8
9
key = [ "a" , "b" ]
value = [ 1 , 2 ]
hash = Hash[ key.map {|k| [ k, value[key.index(k)] ] } ]
p hash
#{"a"=>1, "b"=>2}

tmp = [ "key" , "value" , "key1" , "value1"]
p hash = Hash[tmp.each_slice(2).map{|i|[i[0], i[1]]}]
#{"key"=>"value", "key1"=>"value1"}

array項目內重複次數

1
2
3
4
5
6
7
8
9
array = [1, 2, 2, 3, 3, 4, 4, 4]

#Array項目內重複次數
def arry_max_frequency(array)
    array.compact.group_by(&:itself).map { |k,v| [k, v.count] }
end

p arry_max_frequency(array)
#[[1, 1], [2, 2], [3, 2], [4, 3]]

合併array

1
2
3
4
5
6
7
8
9
def zip_array(a, b)
    t, v = a.transpose
    t.zip(v.zip(b.transpose.last))
end
a = [[1, 5], [2, 10]]
b = [[1, 4], [2, 8]]

zip_array(a, b)
#[[1, [5, 4]], [2, [10, 8]]]