您的位置:首页 > 编程语言 > Ruby

Ruby中map, collect,each,select,reject,reduce的区别

2017-04-26 10:07 483 查看
#map针对每个element进行变换并返回整个修改后的数组
defmap_method
arr1=["name2","class2"]
arr1.map{|num|num+"and"}
print"map====",arr1,"\n"
end

defmap1_method
arr1=["name2","class2"]
arr1.map!{|num|num+"and"}
print"map!====",arr1,"\n"
end

defmap2_method
arr1=["name3","class3"]
#&:表示item
arr2=arr1.map(&:upcase)
print"map2====",arr2,"\n"
end
#reduce把array变换为一个值后返回
defreduce_method
arr1=["a","b","c","d"]
arr2=arr1.reduce(:+)
print"reduce====",arr1,"\n"
print"reduce====",arr2,"\n"
end

defreduce_method2
sum1=(1..100).reduce(:+)
sum2=(1..100).reduce(0)do|sum,value|
sum+value
end
print"reducesum1====#{sum1}\n"
print"reducesum2====#{sum2}\n"
end

#select根据条件返回一个子集
defselect_method
arr=(1..8).select{|x|x%2==0}
print"select====",arr,"\n"
end

#reject根据条件提出一个子集
defreject_method
arr=(1..8).reject{|x|x%2==0}
print"reject====",arr,"\n"

end

#each遍历数组每个元素,但不生成新的数组
defeach_method
arr1=["name2","class2"]
arr2=arr1.each{|num|num+"and"}
print"each====",arr2,"\n"
end

#collect同map一样,collect!同map!一样
defcollect_method
arr1=["name2","clas2"]
arr2=arr1.collect{|num|num+"and"}
print"collect====",arr2,"\n"
end


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: