我想創建一個像Array#my_map
這樣的實例方法,並且該方法應該是原始的Array#map
方法的行爲。 我想從下面的新方法相同的輸出:創建自己的Array#地圖方法
arr = [1, 2, 3, 4]
arr.new_map_method do |x|
x + 1
end # => [2, 3, 4, 5]
arr.new_map_method(&:to_s) # => ["1", "2", "3", "4"]
我想創建一個像Array#my_map
這樣的實例方法,並且該方法應該是原始的Array#map
方法的行爲。 我想從下面的新方法相同的輸出:創建自己的Array#地圖方法
arr = [1, 2, 3, 4]
arr.new_map_method do |x|
x + 1
end # => [2, 3, 4, 5]
arr.new_map_method(&:to_s) # => ["1", "2", "3", "4"]
謝謝你們!我還做了一個解決方案爲我qeestion
class Array
def my_map(&block)
result = []
each do |element|
result << block.call(element)
end
result
end
end
函數調用
[1,2,3].my_map(&:to_s)
輸出=> [ 「1」, 「2」, 「3」]
[1, 2, 3, 4, 5].my_map do |x|
x
end
output => [1,2,3,4,5]
'[1,2,3] .my_map'呢?參見[Array#map](http://ruby-doc.org/core-2.3.0/Array.html#method-i-map)。 –
@CarySwoveland感謝您指點,我正在重構我的代碼。 – umishra
嘗試使用'each'和'push'。 –
啊@ sagarpandya82我想自己的方法與數組映射相同輸出 – umishra
這裏有個問題嗎? –