Запись условного l oop с использованием гема Faker в ruby - PullRequest
2 голосов
/ 14 июля 2020

Я пытаюсь написать al oop, который вернет 25 уникальных имен из гема Faker в ruby, с условием, что каждое имя будет> = 5 символов.

Я удалось создать l oop, который возвращает 25 уникальных имен, но не смог правильно создать условие name.length. Я пробовал следующие попытки:

Попытка 1:

names = [Faker::Name.unique.first_name]
names.each do |name|
  puts name if first_name.length >= 5
  25.times do 
    puts "#{Faker::Name.unique.first_name}"
  end
end

Попытка 2:

names = [Faker::Name.unique.first_name]
  25.times do 
    puts "#{Faker::Name.unique.first_name}"
  names.each do |name|
    puts name if name.length >= 5
    end
end

Что я делаю неправильно?

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Можно сделать примерно так:

require 'faker'

names = []
until names.length == 25 do
  name = Faker::Name.unique.first_name
  names << name if name.length >= 5
end
puts names
0 голосов
/ 14 июля 2020

names = [Faker :: Name.unique.first_name] создать один элемент в массиве, чтобы исправить это, вы должны создавать имена, которые соответствуют вашему условию, а затем вы можете отображать их.

# generate names
names = []
while names.size <= 25 do 
  name = Faker::Name.unique.first_name
  names << name if name.length >= 5
end

# display names
names.each do |name| 
  puts name 
end
...