Arrays 在用户名中添加后缀号以避免重复?
将后缀(数字)添加到username,但如果username已经在数组或文件中,则将后缀增加1,如果再次重复,则增加2,依此类推。。。 我已经使用count添加了后缀。但如果已经存在,我需要增加Arrays 在用户名中添加后缀号以避免重复?,arrays,ruby-on-rails,ruby,csv,Arrays,Ruby On Rails,Ruby,Csv,将后缀(数字)添加到username,但如果username已经在数组或文件中,则将后缀增加1,如果再次重复,则增加2,依此类推。。。 我已经使用count添加了后缀。但如果已经存在,我需要增加 firstname = [] lastname = [] firstchar = [] lastchar = [] username = [] rows = [] CSV.open("userdata.csv", "wb") do |csv| CSV.foreach("em
firstname = []
lastname = []
firstchar = []
lastchar = []
username = []
rows = []
CSV.open("userdata.csv", "wb") do |csv|
CSV.foreach("employeedata.csv", headers: true) do |row|
rows << row
end
count = 1
rows.each do |line|
firstname = line[0]
lastname = line[1]
firstchar = line[0][0].downcase
lastchar = line[0][-1]
username = lastname + firstchar + lastchar + "#{count}"
name = firstname + lastname
password = SecureRandom.hex(5)
csv << [firstname] + [lastname] + [username] + [password]
end
end
firstname=[]
lastname=[]
firstchar=[]
lastchar=[]
用户名=[]
行=[]
CSV.open(“userdata.CSV”、“wb”)do | CSV |
CSV.foreach(“employeedata.CSV”,标题:true)do | row |
行我会这样做
rows = []
CSV.foreach("employeedata.csv", headers: true) do |row|
rows << row
end
user_count = {}
CSV.open("userdata.csv", "wb") do |csv|
rows.each do |line|
firstname = line[0]
lastname = line[1]
firstchar = line[0][0].downcase
lastchar = line[0][-1]
username = lastname + firstchar + lastchar
user_count[username] = user_count.fetch(username){ 0 } + 1
username = username + user_count[username].to_s
name = firstname + lastname
password = SecureRandom.hex(5)
csv << [firstname] + [lastname] + [username] + [password]
end
end
行=[]
CSV.foreach(“employeedata.CSV”,标题:true)do | row |
行我会这样做
rows = []
CSV.foreach("employeedata.csv", headers: true) do |row|
rows << row
end
user_count = {}
CSV.open("userdata.csv", "wb") do |csv|
rows.each do |line|
firstname = line[0]
lastname = line[1]
firstchar = line[0][0].downcase
lastchar = line[0][-1]
username = lastname + firstchar + lastchar
user_count[username] = user_count.fetch(username){ 0 } + 1
username = username + user_count[username].to_s
name = firstname + lastname
password = SecureRandom.hex(5)
csv << [firstname] + [lastname] + [username] + [password]
end
end
行=[]
CSV.foreach(“employeedata.CSV”,标题:true)do | row |
行您需要修复代码块的格式。@robbpriestley我刚做了,请告诉我好了,那看起来好多了,谢谢你为什么是1。对firstname、lastname、firstchar、lastchar、username使用数组。2.(可选)您可以在userdata.csv块3之外读取employeedata.csv。使用哈希来保存username@twnaing:OP对firstname
等使用数组是不正确的。虽然OP使用空数组不必要地初始化firstname
是正确的,但该值会立即在循环中丢弃,并替换为字符串
。实际上,程序的前6行应该完全删除。你需要修改代码块的格式。@robbpriestley我刚做了,请告诉我好的,谢谢你为什么是1。对firstname、lastname、firstchar、lastchar、username使用数组。2.(可选)您可以在userdata.csv块3之外读取employeedata.csv。使用哈希来保存username@twnaing:OP对firstname
等使用数组是不正确的。虽然OP使用空数组不必要地初始化firstname
是正确的,但该值会立即在循环中丢弃,并替换为字符串
。实际上,程序的前6行应该完全删除。非常好@twnaing!只需在用户计数[username]之后添加.to以避免出现错误“`+':没有将整数隐式转换为字符串”。非常感谢@twnaing!只需在用户计数[username]之后添加.to以避免出现错误“`+':没有将整数隐式转换为字符串”。谢谢