راه کار بهتر؟

برای انجام یه همچین کاری ،‌ آیا یه راه حل بهتری به ذهن شما می رسه. این که به ذهن من رسیده ، به نظرم خیلی احمقانه است :slight_smile: یه جور دوباره کاری داره که با uniq! ماست مالی شده

names = ['yukihiro matz','Mark Shuttleworth','Eric raymond','richard stallman','linus torvalds']
lastNames = Array.new
x = 0
for n in names
    lnm = n.split(" ")
    for i in lnm
    lastNames[x] = "there are one #{lnm[1]} in index #{names.index(n)}"
    x +=1
    end
end
lastNames.uniq!
puts lastNames

من مطمئن نیستم دقیقا میخواین چیکار کنین. ولی خب کد بالا رو میشه ساده‌تر نوشت چون الان حلقه‌ی دوم فایده‌ای جز ایجاد جملات تکراری نداره. (اگه اشتباه می‌کنم بگین)

last_names = names.each_with_index.map do |n,i|
  "there are one #{n.split.last} in index #{i}"
end  
3 پسندیده
['yukihiro matz','Mark Shuttleworth','Eric raymond','richard stallman','linus torvalds'].each_with_index do |val,index| 
  puts "there are one #{val} in index  #{index}"
end

از متود each_with_index میشه استفاده کرد

2 پسندیده

این جوری که شما گفتین اسم و فامیل با هم بر می گردن. ولی من فقط فامیلش رو می خواستم

there are one matz in index 0 there are one Shuttleworth in index 1 there are one raymond in index 2 there are one stallman in index 3 there are one torvalds in index 4

there is one

2 پسندیده

:smile: بله ، حق با شماست

1 پسندیده