MaxReve نشر 6 ديسمبر 2015 أرسل تقرير نشر 6 ديسمبر 2015 لدي مصفوفتين كما تظهران في المثال التالي:members = ["Matt Anderson", "Justin Biltonen", "Jordan Luff", "Jeremy London"] instruments = ["guitar, vocals", "guitar", "bass", "drums"] أريد ضم المصفوفتين مع بعض لينتج لنا Hash كما في المثال التالي (لاحظ الفواصل):{"Matt Anderson"=>["guitar", "vocals"], "Justin Biltonen"=>"guitar", "Jordan Luff"=>"bass", "Jeremy London"=>"drums"} فكيف أستطيع فعل ذلك في لغة روبي؟ اقتباس
0 هشام رزق الله نشر 6 ديسمبر 2015 أرسل تقرير نشر 6 ديسمبر 2015 أعتقد أن أفضل طريقة لضم مصفوفتين لبعض مع الانتباه إلى الفواصل؛ هي عن طريق استخدام map و split. أولا حوّل السلاسل النصية المتكونة من أكثر من جزء (المفصولة بفاصل) إلى مصفوفات كما في المثال التالي:instruments.map {|i| i.include?(',') ? (i.split /, /) : i} ومن ثم استخدم Hash[] وzip لدمج مصفوفة members مع مصفوفة instruments لتصبح الشيفرة البرمجية الكاملة (بعد إضافة المثال السابق) كما في المثال التالي:Hash[members.zip(instruments.map {|i| i.include?(',') ? (i.split /, /) : i})] وسوف تحصل في النهاية على هذه النتيجة:{"Jeremy London"=>"drums", "Matt Anderson"=>["guitar", "vocals"], "Jordan Luff"=>"bass", "Justin Biltonen"=>"guitar"} أو يمكنك تحويل جميع النتائج إلى قوائم عن طريق استخدام السطر التالي:Hash[members.zip(instruments.map {|i| i.split /, /})] والذي سوف يعطيك:{"Jeremy London"=>["drums"], "Matt Anderson"=>["guitar", "vocals"], "Jordan Luff"=>["bass"], "Justin Biltonen"=>["guitar"]} اقتباس
السؤال
MaxReve
لدي مصفوفتين كما تظهران في المثال التالي:
أريد ضم المصفوفتين مع بعض لينتج لنا Hash كما في المثال التالي (لاحظ الفواصل):
فكيف أستطيع فعل ذلك في لغة روبي؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.