小编use*_*053的帖子

如何在一个数组中多次重复单个哈希?

我想创建数十个依赖于此数组中的数据的登录名,登录名:

    logins = [
        {
            email: Faker::Internet.email,
            password: "password",
            first_name: Faker::Name.first_name,
            last_name: Faker::Name.last_name 
        },
        {
            email: Faker::Internet.email,
            password: "password",
            first_name: Faker::Name.first_name,
            last_name: Faker::Name.last_name 
        }
    ]
Run Code Online (Sandbox Code Playgroud)

有什么更好的方法来编写这个数组而不是将哈希复制和粘贴几十次?我熟悉 x.times do 但这不适用于数组。

这是我传入登录名的代码:

    logins.each do |login|
         li = LoginInformation.new(login: login[:email], password: login[:password])
         if UserManager.save(li)
                company_ids.each do |id|
                  li.contacts.create(first_name: login[:first_name], last_name: login[:last_name], email_address: login[:email], company_id: id, is_employee: true)
                end
         end
    end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails ruby-on-rails-3 faker

1
推荐指数
1
解决办法
1054
查看次数

Ruby将变量数组保存在变量中,而不更改原始数组

我想在两个变量中保存一个数组的值,不包括第一个和最后一个元素.

例如:

prices = [9, 3, 5, 2, 1]
Run Code Online (Sandbox Code Playgroud)

我需要的元素是:

prices_excl_first = [3, 5, 2, 1]

prices_excl_last = [9, 3, 5, 2]
Run Code Online (Sandbox Code Playgroud)

我想通过几种方法从数组中删除元素,包括通过将其索引传递给切片方法来切除值,如下所示:

first_price = prices.slice(0)
last_price = prices.slice(-1)
Run Code Online (Sandbox Code Playgroud)

然后我们可以将修改后的数组保存到变量中:

array_except_first_price = prices.delete(first_price) #=> [3, 5, 2, 1]
array_except_last_index = prices.delete(last_price) #=> [3, 5, 2]
Run Code Online (Sandbox Code Playgroud)

这有两个问题:

  1. array_except_last_index现在不包含第一个元素
  2. 我还需要完整的,原始的数组访问prices

基本上,如何在问题中必要时暂时修改数组中的元素?

从数组中切片和删除元素会永久影响数组.

ruby arrays

1
推荐指数
1
解决办法
147
查看次数

标签 统计

ruby ×2

arrays ×1

faker ×1

ruby-on-rails ×1

ruby-on-rails-3 ×1