salimi نشر 21 ديسمبر 2015 أرسل تقرير نشر 21 ديسمبر 2015 لديّ مصفوفة في روبي تحتوي على عدّة قيم، وأرغب بالحصول على أرقام القيّم الأقل من عدد ما، مثلا 21، بحيث يكون المخرج جميع أرقام القيم الأصغر من 21:a=[10,20,30,10,3,2,200] المُخرج سيكون كالتّالي:[0, 1, 3, 4, 5] فكيف يُمكن القيّام بذلك؟ اقتباس
0 عبدالهادي الديوري نشر 21 ديسمبر 2015 أرسل تقرير نشر 21 ديسمبر 2015 يُمكن الحصول على النّتيجة المرغوبة بعدّة طرق منها:1. استعمال التّابع size.times.with_object مع جملة شرطيّة كالتّالي:a.size.times.with_object([]) { |i,b| b << i if a[i] < 21 } 2. استعمال size.times.map:a.size.times.map { |i| a[i] < 21 ? i : nil }.compact 3. استعمال التّابع zip:a.zip( Array(0...a.size) ).select { |e,_| e < 21 }.map(&:last) 4. استعمال التّابع reducea.reduce([[],0]) { |(b,i),e| [e < 21 ? b << i : b, i + 1] }.first 5. استخدام each_with_object a.each_with_object([]) {|e,a| a << (e.to_i < 21 ? a.size : nil) }.compact 6. استخدام التّعابير القيّاسية مع توابع المصفوفات:a.join(',').gsub(/(\d+)/) { |e| (e.to_i < 21) ? $`.count(',') : nil } \ .gsub(',,',',').split(',').map(&:to_i) جميع الطّرق أعلاه ترجع نفس القيمة:[0, 1, 3, 4, 5] اقتباس
السؤال
salimi
لديّ مصفوفة في روبي تحتوي على عدّة قيم، وأرغب بالحصول على أرقام القيّم الأقل من عدد ما، مثلا 21، بحيث يكون المخرج جميع أرقام القيم الأصغر من 21:
المُخرج سيكون كالتّالي:
فكيف يُمكن القيّام بذلك؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.