将函数应用于数组中的每个元素并将结果存储在数组中

时间:2013-03-10 08:07:16

标签: ruby arrays

我有一个函数toWords,它将整数转换为单词

e.g。 toWords(500, tableWords)提供fivehundred

我有一个数字h = (1..999).to_a数组,我想通过这个数组并将每个数字转换成一个单词并将其存储在一个新数组中。我目前的尝试是:

h = (1..999).to_a
Lh = h.each do |i| toWords(i, tableWords) end

但是,Lh的内容只是1到999之间的整数,而不是我toWords函数的输出。我该怎么做呢?我正在考虑R中sapply的某些内容。

更好的是,如果我的新数组Lh可以有两列,第一列包含数字格式的整数,第二列是单词中的相应数字。

谢谢!

2 个答案:

答案 0 :(得分:5)

要获得两列,您可以执行以下操作

(1..999).map {|x| [x, toWords(x, tableWords)]}

答案 1 :(得分:2)

根据Cicada的评论,答案是:

Lh = h.map{|x| toWords(x, tableWords)}