Самый чистый способ сделать что-то вроде "Sentences.each.each" в Ruby - PullRequest
0 голосов
/ 22 ноября 2011

Допустим, у меня есть массив предложений:

a = ["I love pie", "I love you more and more each day", "every day is a good day"]

Я хочу проверить каждое слово в предложении.Потому что ruby ​​такой крутой, я думал, что a.each.each может работать, но это не так.Есть ли чистый путь к этому, не вкладывая каждый внутри каждого?

Ответы [ 2 ]

5 голосов
/ 22 ноября 2011
a.each { |sentence| sentence.split.each { |word| # do something with the word } }

или немного более длинный формат, если:

a.each do |sentence|
  sentence.split.each do |word|
    # do something
    # do something
    # do something
  end
end
2 голосов
/ 22 ноября 2011

Если вы хотите избежать вложения (хотя бы визуально), вы можете использовать:

a.map(&:split).flatten.each{ |word| # do something }
...