یک آرایه از هش‌ها که هر کدام دارای کلیدهای :name و :price هستند بگیرید؛ آرایه را به‌صورت صعودی بر اساس قیمت مرتب کنید و سپس نام اولین محصولی را که قیمتش کمتر از یک مقدار ورودی است برگردانید.

2.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:34

0.0

با استفاده از زبان Ruby از متدهای Enumerable مثل sort_by برای مرتب‌سازی بر اساس h[:price] و از find یا detect برای جستجوی اولین عنصر مطابق شرط (h[:price]

توسط پژوهشگر در 221 روز قبل ساعت 01:34
دسته بندی ها: Ruby Ruby for beginner
arash در 221 روز قبل ساعت 12:46

نکته کلیدی این است که قبل از مقایسه قیمت‌ها، مقادیر درون :price را به عدد تبدیل کنیم تا با انواع داده‌ها مانند رشته‌ها سازگار باشیم. با استفاده از sort_by { |h| h[:price].to_f } آرایه را به‌طور صعودی مرتب کنیم و سپس با find یا detect اولین عنصر را که h[:price].to_f < threshold دارد بیابیم. اگر هیچ محصولی یافت نشود، می‌تواند nil بازگردانده شود یا پیغام مناسبی ارائه گردد تا کدنویسی مصرف‌کننده روشن باشد. همچنین استفاده از بلاک کوتاه مثل {|h| h[:price]} خوانایی را افزایش می‌دهد، اما اگر امکان وجود مقدار nil یا غیر numeric وجود دارد، بهتر است ورودی‌ها را پیش از مقایسه اعتبارسنجی کنیم.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری