{"id":1503,"date":"2025-03-24T08:50:34","date_gmt":"2025-03-23T23:50:34","guid":{"rendered":"https:\/\/dexall.co.jp\/articles\/?p=1503"},"modified":"2025-03-24T08:50:34","modified_gmt":"2025-03-23T23:50:34","slug":"%e3%80%90%e4%bf%9d%e5%ad%98%e7%89%88%e3%80%91ruby%e3%81%aereject%e3%83%a1%e3%82%bd%e3%83%83%e3%83%89%e5%ae%8c%e5%85%a8%e3%82%ac%e3%82%a4%e3%83%89%ef%bc%9a7%e3%81%a4%e3%81%ae%e5%ae%9f%e8%b7%b5%e7%9a%84","status":"publish","type":"post","link":"https:\/\/dexall.co.jp\/articles\/?p=1503","title":{"rendered":"\u3010\u4fdd\u5b58\u7248\u3011Ruby\u306eReject\u30e1\u30bd\u30c3\u30c9\u5b8c\u5168\u30ac\u30a4\u30c9\uff1a7\u3064\u306e\u5b9f\u8df5\u7684\u306a\u4f7f\u3044\u65b9\u3068\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u306e\u30b3\u30c4"},"content":{"rendered":"\n<div class=\"toc\"><br \/>\n<b>Warning<\/b>:  Undefined array key \"is_admin\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>116<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_category_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>121<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>128<\/b><br \/>\n    <div id=\"toc_container\" class=\"sgb-toc--bullets js-smooth-scroll\" data-dialog-title=\"\u76ee\u6b21\">\n      <p class=\"toc_title\">\u76ee\u6b21 <\/p>\n      <ul class=\"toc_list\">  <li class=\"first\">    <a href=\"#i-0\">Ruby\u306ereject\u30e1\u30bd\u30c3\u30c9\u3068\u306f\uff1a\u57fa\u790e\u304b\u3089\u7406\u89e3\u3059\u308b\u4f7f\u3044\u65b9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-1\">reject\u30e1\u30bd\u30c3\u30c9\u306e\u57fa\u672c\u69cb\u6587\u3068\u52d5\u4f5c\u539f\u7406<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-2\">select\/filter\u3068reject\u306e\u4f7f\u3044\u5206\u3051\uff1a\u53cd\u5bfe\u306e\u7d50\u679c\u3092\u5f97\u308b\u4ef2\u9593\u305f\u3061<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-3\">\u5b9f\u8df5\u3067\u6d3b\u304d\u308b\uff01reject\u30e1\u30bd\u30c3\u30c9\u306e\u6d3b\u7528\u30d1\u30bf\u30fc\u30f3<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-4\">\u914d\u5217\u304b\u3089\u7279\u5b9a\u306e\u6761\u4ef6\u306e\u8981\u7d20\u3092\u9664\u5916\u3059\u308b<\/a>      <\/li>      <li>        <a href=\"#i-5\">\u30cf\u30c3\u30b7\u30e5\u304b\u3089\u6761\u4ef6\u306b\u5408\u308f\u306a\u3044\u30ad\u30fc\u3068\u5024\u3092\u53d6\u308a\u9664\u304f<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-6\">nil \u3084\u7a7a\u306e\u8981\u7d20\u3092\u52b9\u7387\u7684\u306b\u9664\u53bb\u3059\u308b<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-7\">reject\u30e1\u30bd\u30c3\u30c9\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u8853<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-8\">\u5927\u898f\u6a21\u30c7\u30fc\u30bf\u51e6\u7406\u6642\u306e\u6ce8\u610f\u70b9\u3068\u5bfe\u7b56<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-9\">\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3092\u6291\u3048\u308b\u30c6\u30af\u30cb\u30c3\u30af<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-10\">\u5b9f\u52d9\u3067\u4f7f\u3048\u308b\uff01reject\u30e1\u30bd\u30c3\u30c9\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-11\">\u53ef\u8aad\u6027\u3092\u9ad8\u3081\u308b\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30b9\u30bf\u30a4\u30eb<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-12\">\u30e1\u30bd\u30c3\u30c9\u30c1\u30a7\u30fc\u30f3\u3067\u306e\u52b9\u679c\u7684\u306a\u4f7f\u7528\u65b9\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-13\">\u3088\u304f\u3042\u308breject\u30e1\u30bd\u30c3\u30c9\u306e\u30a2\u30f3\u30c1\u30d1\u30bf\u30fc\u30f3\u3068\u89e3\u6c7a\u7b56<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-14\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u4f4e\u4e0b\u3055\u305b\u308b\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-15\">\u4fdd\u5b88\u6027\u3092\u640d\u306a\u3046\u4f7f\u3044\u65b9\u3068\u6539\u5584\u65b9\u6cd5<\/a>      <\/li>    <\/ul>  <\/li>  <li class=\"last\">    <a href=\"#i-16\">reject\u30e1\u30bd\u30c3\u30c9\u3068Ruby\u3089\u3057\u3044\u5b9f\u88c5\u306e\u5b9f\u73fe<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-17\">\u95a2\u6570\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u8003\u3048\u65b9\u3092\u53d6\u308a\u5165\u308c\u308b<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-18\">Enumerable \u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u4ed6\u306e\u30e1\u30bd\u30c3\u30c9\u3068\u306e\u7d44\u307f\u5408\u308f\u305b<\/a>      <\/li>    <\/ul>  <\/li><\/ul>\n      <a href=\"#\" class=\"sgb-toc-button js-toc-button\" rel=\"nofollow\" data-open-dialog=\"true\"><i class=\"fa fa-list\"><\/i><span class=\"sgb-toc-button__text\">\u76ee\u6b21\u3078<\/span><\/a>\n    <\/div><\/div><h2 class=\"wp-block-heading\" id=\"i-0\">Ruby\u306ereject\u30e1\u30bd\u30c3\u30c9\u3068\u306f\uff1a\u57fa\u790e\u304b\u3089\u7406\u89e3\u3059\u308b\u4f7f\u3044\u65b9<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-1\">reject\u30e1\u30bd\u30c3\u30c9\u306e\u57fa\u672c\u69cb\u6587\u3068\u52d5\u4f5c\u539f\u7406<\/h3>\n\n\n\n<p><code>reject<\/code>\u30e1\u30bd\u30c3\u30c9\u306f\u3001Ruby\u306e<code>Enumerable<\/code>\u30e2\u30b8\u30e5\u30fc\u30eb\u3067\u63d0\u4f9b\u3055\u308c\u308b\u975e\u5e38\u306b\u5f37\u529b\u306a\u30e1\u30bd\u30c3\u30c9\u3067\u3059\u3002\u914d\u5217\u3084\u30cf\u30c3\u30b7\u30e5\u306e\u8981\u7d20\u3092\u3001\u6307\u5b9a\u3057\u305f\u6761\u4ef6\u306b\u57fa\u3065\u3044\u3066\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u3057\u3001\u6761\u4ef6\u306b<strong>\u8a72\u5f53\u3057\u306a\u3044<\/strong>\u8981\u7d20\u3060\u3051\u3092\u65b0\u3057\u3044\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3068\u3057\u3066\u8fd4\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u57fa\u672c\u7684\u306a\u69cb\u6587\u306f\u4ee5\u4e0b\u306e\u901a\u308a\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30d6\u30ed\u30c3\u30af\u3092\u4f7f\u7528\u3059\u308b\u57fa\u672c\u5f62\ncollection.reject { |element| condition }\n\n# \u7701\u7565\u5f62\uff08\u30b7\u30f3\u30dc\u30eb\u3092\u4f7f\u7528\uff09\ncollection.reject(&amp;:condition_method)<\/pre>\n\n\n\n<p>\u5177\u4f53\u7684\u306a\u4f7f\u7528\u4f8b\u3092\u898b\u3066\u307f\u307e\u3057\u3087\u3046\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u57fa\u672c\u7684\u306a\u4f7f\u7528\u4f8b\uff1a\u5076\u6570\u3092\u9664\u5916\u3059\u308b\nnumbers = [1, 2, 3, 4, 5]\nodd_numbers = numbers.reject { |n| n.even? }\nputs odd_numbers  # \u51fa\u529b: [1, 3, 5]\n\n# nil\u5024\u3092\u9664\u5916\u3059\u308b\narray = [1, nil, 3, nil, 5]\nvalid_numbers = array.reject { |x| x.nil? }\nputs valid_numbers  # \u51fa\u529b: [1, 3, 5]\n\n# \u30cf\u30c3\u30b7\u30e5\u3067\u306e\u4f7f\u7528\u4f8b\uff1a\u5024\u304c\u7a7a\u306e\u8981\u7d20\u3092\u9664\u5916\nhash = { a: 1, b: nil, c: 3, d: '' }\nvalid_hash = hash.reject { |key, value| value.nil? || value.empty? }\nputs valid_hash  # \u51fa\u529b: {:a=&gt;1, :c=&gt;3}<\/pre>\n\n\n\n<p><code>reject<\/code>\u30e1\u30bd\u30c3\u30c9\u306e\u91cd\u8981\u306a\u7279\u5fb4\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u975e\u7834\u58ca\u7684\u30e1\u30bd\u30c3\u30c9<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5143\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u5909\u66f4\u305b\u305a\u3001\u65b0\u3057\u3044\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u8fd4\u3057\u307e\u3059<\/li>\n\n\n\n<li>\u7834\u58ca\u7684\u306a\u64cd\u4f5c\u304c\u5fc5\u8981\u306a\u5834\u5408\u306f<code>reject!<\/code>\u3092\u4f7f\u7528\u3057\u307e\u3059<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u9045\u5ef6\u8a55\u4fa1<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>reject<\/code>\u306f\u9045\u5ef6\u8a55\u4fa1\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u304a\u308a\u3001\u5fc5\u8981\u306b\u5fdc\u3058\u3066<code>lazy<\/code>\u3068\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u623b\u308a\u5024<\/strong>\uff1a<\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u6761\u4ef6\u306b\u8a72\u5f53\u3057\u306a\u3044\u8981\u7d20\u3067\u69cb\u6210\u3055\u308c\u308b\u65b0\u3057\u3044\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3092\u8fd4\u3057\u307e\u3059<\/li>\n\n\n\n<li>\u5143\u306e\u30b3\u30ec\u30af\u30b7\u30e7\u30f3\u3068\u540c\u3058\u578b\uff08\u914d\u5217\u307e\u305f\u306f\u30cf\u30c3\u30b7\u30e5\uff09\u3092\u8fd4\u3057\u307e\u3059<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-2\">select\/filter\u3068reject\u306e\u4f7f\u3044\u5206\u3051\uff1a\u53cd\u5bfe\u306e\u7d50\u679c\u3092\u5f97\u308b\u4ef2\u9593\u305f\u3061<\/h3>\n\n\n\n<p><code>reject<\/code>\u306f<code>select<\/code>\uff08\u5225\u540d<code>filter<\/code>\uff09\u30e1\u30bd\u30c3\u30c9\u306e\u53cd\u5bfe\u306e\u52d5\u4f5c\u3092\u3057\u307e\u3059\u3002\u3053\u306e\u4e8c\u3064\u306e\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u540c\u3058\u7d50\u679c\u3092\u7570\u306a\u308b\u65b9\u6cd5\u3067\u5f97\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># select\u3092\u4f7f\u7528\u3057\u305f\u5834\u5408\nnumbers = [1, 2, 3, 4, 5]\nodd_numbers_select = numbers.select { |n| n.odd? }\n\n# reject\u3092\u4f7f\u7528\u3057\u305f\u5834\u5408\nodd_numbers_reject = numbers.reject { |n| n.even? }\n\n# \u4e21\u8005\u306f\u540c\u3058\u7d50\u679c\u3092\u8fd4\u3059\nputs odd_numbers_select == odd_numbers_reject  # \u51fa\u529b: true<\/pre>\n\n\n\n<p>\u4f7f\u3044\u5206\u3051\u306e\u30dd\u30a4\u30f3\u30c8\uff1a<\/p>\n\n\n<div id=\"id-735fb48b-be5a-4adc-a4ca-3885c2fa4cc1\">\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30e1\u30bd\u30c3\u30c9<\/th><th>\u4f7f\u7528\u3059\u308b\u30b1\u30fc\u30b9<\/th><th>\u30b3\u30fc\u30c9\u306e\u8aad\u307f\u3084\u3059\u3055<\/th><\/tr><\/thead><tbody><tr><td>select<\/td><td>\u6761\u4ef6\u306b\u5408\u3046\u8981\u7d20\u3092\u53d6\u5f97\u3057\u305f\u3044\u5834\u5408<\/td><td>\u80af\u5b9a\u7684\u306a\u6761\u4ef6\u304c\u81ea\u7136\u306a\u5834\u5408<\/td><\/tr><tr><td>reject<\/td><td>\u6761\u4ef6\u306b\u5408\u308f\u306a\u3044\u8981\u7d20\u3092\u9664\u5916\u3057\u305f\u3044\u5834\u5408<\/td><td>\u5426\u5b9a\u7684\u306a\u6761\u4ef6\u304c\u81ea\u7136\u306a\u5834\u5408<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n<p>\u4f7f\u3044\u5206\u3051\u306e\u5b9f\u8df5\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># select\u304c\u81ea\u7136\u306a\u4f8b\uff1a\u6709\u52b9\u306a\u30e6\u30fc\u30b6\u30fc\u3092\u62bd\u51fa\nusers.select { |user| user.active? }\n\n# reject\u304c\u81ea\u7136\u306a\u4f8b\uff1a\u7121\u52b9\u306a\u30c7\u30fc\u30bf\u3092\u9664\u5916\ndata.reject { |item| item.invalid? }\n\n# \u8907\u96d1\u306a\u6761\u4ef6\u306e\u5834\u5408\nusers.reject { |user| user.inactive? || user.suspended? || user.deleted? }\n# \u4e0a\u8a18\u306f\u4ee5\u4e0b\u306eselect\u3088\u308a\u8aad\u307f\u3084\u3059\u3044\n# users.select { |user| !user.inactive? &amp;&amp; !user.suspended? &amp;&amp; !user.deleted? }<\/pre>\n\n\n\n<p>\u3053\u306e\u4f7f\u3044\u5206\u3051\u306f\u3001\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u3068\u610f\u56f3\u306e\u660e\u78ba\u3055\u306b\u5927\u304d\u304f\u5f71\u97ff\u3057\u307e\u3059\u3002\u7279\u306b\u8907\u6570\u306e\u6761\u4ef6\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u5834\u5408\u3001<code>reject<\/code>\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u4e8c\u91cd\u5426\u5b9a\u3092\u907f\u3051\u3001\u3088\u308a\u30af\u30ea\u30fc\u30f3\u306a\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-3\">\u5b9f\u8df5\u3067\u6d3b\u304d\u308b\uff01reject\u30e1\u30bd\u30c3\u30c9\u306e\u6d3b\u7528\u30d1\u30bf\u30fc\u30f3<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-4\">\u914d\u5217\u304b\u3089\u7279\u5b9a\u306e\u6761\u4ef6\u306e\u8981\u7d20\u3092\u9664\u5916\u3059\u308b<\/h3>\n\n\n\n<p>\u914d\u5217\u3067\u306e<code>reject<\/code>\u30e1\u30bd\u30c3\u30c9\u306e\u4f7f\u7528\u306f\u3001\u30c7\u30fc\u30bf\u306e\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u3084\u30af\u30ea\u30fc\u30cb\u30f3\u30b0\u3067\u975e\u5e38\u306b\u52b9\u679c\u7684\u3067\u3059\u3002\u4ee5\u4e0b\u306b\u5b9f\u8df5\u7684\u306a\u4f7f\u7528\u4f8b\u3092\u793a\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u6570\u5024\u914d\u5217\u3067\u306e\u4f7f\u7528\u4f8b\nnumbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]\n\n# \u8907\u6570\u306e\u6761\u4ef6\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\nresult = numbers.reject do |n|\n  n &lt; 3 || n &gt; 8  # 3\u672a\u6e80\u307e\u305f\u306f8\u3088\u308a\u5927\u304d\u3044\u6570\u3092\u9664\u5916\nend\nputs result  # \u51fa\u529b: [3, 4, 5, 6, 7, 8]\n\n# \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u914d\u5217\u3067\u306e\u4f7f\u7528\u4f8b\nclass Product\n  attr_reader :name, :price, :stock\n\n  def initialize(name, price, stock)\n    @name = name\n    @price = price\n    @stock = stock\n  end\n\n  def out_of_stock?\n    @stock &lt;= 0\n  end\nend\n\nproducts = [\n  Product.new(\"Apple\", 100, 5),\n  Product.new(\"Banana\", 80, 0),\n  Product.new(\"Orange\", 120, 3),\n  Product.new(\"Grape\", 200, -1)\n]\n\n# \u5728\u5eab\u5207\u308c\u5546\u54c1\u3092\u9664\u5916\nin_stock_products = products.reject(&amp;:out_of_stock?)\n\n# \u8907\u5408\u6761\u4ef6\u3067\u306e\u9664\u5916\npremium_in_stock = products.reject { |p| p.out_of_stock? || p.price &lt; 100 }<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-5\">\u30cf\u30c3\u30b7\u30e5\u304b\u3089\u6761\u4ef6\u306b\u5408\u308f\u306a\u3044\u30ad\u30fc\u3068\u5024\u3092\u53d6\u308a\u9664\u304f<\/h3>\n\n\n\n<p>\u30cf\u30c3\u30b7\u30e5\u3067\u306e<code>reject<\/code>\u306e\u4f7f\u7528\u306f\u3001\u30c7\u30fc\u30bf\u306e\u30af\u30ea\u30fc\u30cb\u30f3\u30b0\u3084\u5fc5\u8981\u306a\u30ad\u30fc\u30fb\u5024\u30da\u30a2\u306e\u62bd\u51fa\u306b\u52b9\u679c\u7684\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u4f8b\nparams = {\n  user_id: 1,\n  name: \"John\",\n  email: \"\",\n  age: nil,\n  created_at: Time.now,\n  updated_at: Time.now,\n  temp_data: nil\n}\n\n# \u7a7a\u5024\u3084nil\u3092\u9664\u5916\ncleaned_params = params.reject { |_, v| v.nil? || (v.respond_to?(:empty?) &amp;&amp; v.empty?) }\n\n# \u7279\u5b9a\u306e\u30ad\u30fc\u306e\u307f\u3092\u9664\u5916\nfiltered_params = params.reject { |k, _| [:created_at, :updated_at, :temp_data].include?(k) }\n\n# \u8907\u96d1\u306a\u6761\u4ef6\u3067\u306e\u9664\u5916\nvalidated_params = params.reject do |key, value|\n  case key\n  when :age\n    value.nil? || value &lt;= 0\n  when :email\n    value.nil? || !value.match?(\/\\A[\\w+\\-.]+@[a-z\\d\\-.]+\\.[a-z]+\\z\/i)\n  else\n    false\n  end\nend<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-6\">nil \u3084\u7a7a\u306e\u8981\u7d20\u3092\u52b9\u7387\u7684\u306b\u9664\u53bb\u3059\u308b<\/h3>\n\n\n\n<p>nil\u3084\u7a7a\u8981\u7d20\u306e\u9664\u53bb\u306f\u3001\u30c7\u30fc\u30bf\u30af\u30ea\u30fc\u30cb\u30f3\u30b0\u306e\u57fa\u672c\u7684\u306a\u30bf\u30b9\u30af\u3067\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u914d\u5217\u304b\u3089nil\u3068\u7a7a\u6587\u5b57\u3092\u9664\u53bb\u3059\u308b\u52b9\u7387\u7684\u306a\u65b9\u6cd5\ndata = [1, nil, \"\", \"text\", [], nil, {}, \"   \", 42]\n\n# \u57fa\u672c\u7684\u306anil\u9664\u53bb\nclean_data = data.reject(&amp;:nil?)\n\n# \u3088\u308a\u8907\u96d1\u306a\u30b1\u30fc\u30b9\uff1anil\u3001\u7a7a\u6587\u5b57\u3001\u7a7a\u914d\u5217\u3001\u7a7a\u30cf\u30c3\u30b7\u30e5\u3092\u9664\u53bb\nthoroughly_cleaned = data.reject do |element|\n  element.nil? ||\n    (element.respond_to?(:empty?) &amp;&amp; element.empty?) ||\n    (element.is_a?(String) &amp;&amp; element.strip.empty?)\nend\n\n# ActiveRecord\u306e\u7d50\u679c\u30bb\u30c3\u30c8\u3067\u306e\u4f7f\u7528\u4f8b\nclass User &lt; ApplicationRecord\n  scope :without_empty_profiles, -&gt; {\n    reject { |user| user.profile.nil? || user.profile.attributes.values.all?(&amp;:nil?) }\n  }\nend\n\n# \u5927\u898f\u6a21\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u3067\u306e\u52b9\u7387\u7684\u306a\u51e6\u7406\nrequire 'set'\ndef clean_large_dataset(dataset)\n  # Set\u3092\u4f7f\u7528\u3057\u3066\u91cd\u8907\u30c1\u30a7\u30c3\u30af\u3092\u6700\u9069\u5316\n  seen = Set.new\n  dataset.reject do |item|\n    # nil\u3001\u7a7a\u8981\u7d20\u3001\u91cd\u8907\u8981\u7d20\u3092\u9664\u53bb\n    item.nil? || \n      item.respond_to?(:empty?) &amp;&amp; item.empty? ||\n      seen.add?(item).nil?\n  end\nend<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u5b9f\u8df5\u7684\u306a\u30d1\u30bf\u30fc\u30f3\u306f\u3001\u5b9f\u52d9\u3067\u3088\u304f\u906d\u9047\u3059\u308b\u554f\u984c\u306b\u5bfe\u3059\u308b\u52b9\u679c\u7684\u306a\u89e3\u6c7a\u7b56\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002\u7279\u306b\u3001\u30c7\u30fc\u30bf\u306e\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u3084\u30af\u30ea\u30fc\u30cb\u30f3\u30b0\u3001\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u306a\u3069\u3067\u6d3b\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-7\">reject\u30e1\u30bd\u30c3\u30c9\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u8853<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-8\">\u5927\u898f\u6a21\u30c7\u30fc\u30bf\u51e6\u7406\u6642\u306e\u6ce8\u610f\u70b9\u3068\u5bfe\u7b56<\/h3>\n\n\n\n<p>\u5927\u898f\u6a21\u306a\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u3092\u51e6\u7406\u3059\u308b\u969b\u306e<code>reject<\/code>\u30e1\u30bd\u30c3\u30c9\u306e\u52b9\u7387\u7684\u306a\u4f7f\u7528\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u6700\u9069\u5316\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30e1\u30e2\u30ea\u52b9\u7387\u306e\u60aa\u3044\u5b9f\u88c5\ndef process_large_array(array)\n  result = array.reject { |x| x.nil? }\n  result.reject { |x| x.zero? }\nend\n\n# \u30e1\u30e2\u30ea\u52b9\u7387\u306e\u826f\u3044\u5b9f\u88c5\ndef process_large_array(array)\n  array.reject { |x| x.nil? || x.zero? }\nend\n\n# \u975e\u5e38\u306b\u5927\u304d\u306a\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u306e\u5834\u5408\u306fEnumerable#lazy\u3092\u4f7f\u7528\ndef process_very_large_array(array)\n  array.lazy\n       .reject { |x| x.nil? }\n       .reject { |x| x.zero? }\n       .force\nend<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u51e6\u7406\u901f\u5ea6\u306e\u6700\u9069\u5316\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">require 'benchmark'\n\n# \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6bd4\u8f03\u306e\u4f8b\narray = (1..1000000).to_a\n\nBenchmark.bm do |x|\n  # \u5358\u7d14\u306a\u5b9f\u88c5\n  x.report(\"Simple reject:\") {\n    array.reject { |n| n % 2 == 0 }\n  }\n\n  # \u4e8b\u524d\u306b\u6761\u4ef6\u3092\u30e1\u30bd\u30c3\u30c9\u5316\n  is_even = -&gt;(n) { n % 2 == 0 }\n  x.report(\"Lambda reject:\") {\n    array.reject(&amp;is_even)\n  }\n\n  # \u914d\u5217\u306e\u7279\u6027\u3092\u6d3b\u304b\u3057\u305f\u5b9f\u88c5\n  x.report(\"Optimized reject:\") {\n    array.each_with_object([]) { |n, obj| obj &lt;&lt; n unless n % 2 == 0 }\n  }\nend<\/pre>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>\u5927\u898f\u6a21\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u51e6\u7406\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class LargeDataProcessor\n  def self.process_in_batches(data, batch_size: 1000)\n    result = []\n    data.each_slice(batch_size) do |batch|\n      processed_batch = batch.reject { |item| invalid?(item) }\n      result.concat(processed_batch)\n    end\n    result\n  end\n\n  def self.invalid?(item)\n    # \u30ab\u30b9\u30bf\u30e0\u306e\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30ed\u30b8\u30c3\u30af\n    item.nil? || item.empty?\n  end\nend\n\n# Enumerator\u3092\u4f7f\u7528\u3057\u305f\u52b9\u7387\u7684\u306a\u5b9f\u88c5\ndef stream_process(enumerable)\n  Enumerator.new do |yielder|\n    enumerable.each do |element|\n      yielder &lt;&lt; element unless invalid?(element)\n    end\n  end\nend<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-9\">\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3092\u6291\u3048\u308b\u30c6\u30af\u30cb\u30c3\u30af<\/h3>\n\n\n\n<p>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3092\u6700\u5c0f\u9650\u306b\u6291\u3048\u306a\u304c\u3089<code>reject<\/code>\u3092\u4f7f\u7528\u3059\u308b\u65b9\u6cd5\u3092\u7d39\u4ecb\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30d0\u30c3\u30c1\u51e6\u7406\u306e\u5b9f\u88c5\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class MemoryEfficientProcessor\n  def self.process_large_file(filename)\n    File.open(filename) do |file|\n      file.each_line\n          .lazy\n          .reject { |line| line.strip.empty? }\n          .map { |line| process_line(line) }\n          .each_slice(1000) { |batch| save_batch(batch) }\n    end\n  end\n\n  private\n\n  def self.process_line(line)\n    # \u884c\u306e\u51e6\u7406\u30ed\u30b8\u30c3\u30af\n    line.strip\n  end\n\n  def self.save_batch(batch)\n    # \u30d0\u30c3\u30c1\u306e\u4fdd\u5b58\u30ed\u30b8\u30c3\u30af\n    # \u4f8b\uff1a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3078\u306e\u4e00\u62ec\u633f\u5165\u306a\u3069\n  end\nend<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>\u30b9\u30c8\u30ea\u30fc\u30e0\u51e6\u7406\u306e\u6d3b\u7528\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">require 'csv'\n\nclass StreamProcessor\n  def self.process_csv(input_file, output_file)\n    CSV.open(output_file, 'w') do |csv|\n      CSV.foreach(input_file)\n         .lazy\n         .reject { |row| invalid_row?(row) }\n         .each { |row| csv &lt;&lt; row }\n    end\n  end\n\n  private\n\n  def self.invalid_row?(row)\n    row.all?(&amp;:nil?) || row.empty?\n  end\nend<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af\u3092\u9069\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u3092\u6291\u3048\u306a\u304c\u3089\u5927\u898f\u6a21\u306a\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8\u3092\u52b9\u7387\u7684\u306b\u51e6\u7406\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-10\">\u5b9f\u52d9\u3067\u4f7f\u3048\u308b\uff01reject\u30e1\u30bd\u30c3\u30c9\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-11\">\u53ef\u8aad\u6027\u3092\u9ad8\u3081\u308b\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30b9\u30bf\u30a4\u30eb<\/h3>\n\n\n\n<p>\u826f\u3044\u30b3\u30fc\u30c9\u306f\u81ea\u5df1\u6587\u66f8\u5316\u3055\u308c\u3066\u3044\u308b\u3079\u304d\u3067\u3059\u3002<code>reject<\/code>\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3059\u308b\u969b\u306e\u53ef\u8aad\u6027\u306e\u9ad8\u3044\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u30b9\u30bf\u30a4\u30eb\u3092\u7d39\u4ecb\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u60aa\u3044\u4f8b\uff1a\u8907\u96d1\u306a\u6761\u4ef6\u3092\u30a4\u30f3\u30e9\u30a4\u30f3\u3067\u66f8\u304f\nusers.reject { |u| u.age &lt; 18 || u.status == 'inactive' || u.email.nil? || u.created_at &lt; 30.days.ago }\n\n# \u826f\u3044\u4f8b\uff1a\u6761\u4ef6\u3092\u30e1\u30bd\u30c3\u30c9\u306b\u62bd\u51fa\u3059\u308b\nclass User\n  def inactive_or_invalid?\n    age &lt; 18 || \n      status == 'inactive' || \n      email.nil? || \n      created_at &lt; 30.days.ago\n  end\nend\n\nusers.reject(&amp;:inactive_or_invalid?)\n\n# \u8907\u6570\u306e\u6761\u4ef6\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u5834\u5408\nclass ProductFilter\n  def self.filter_products(products)\n    products.reject do |product|\n      invalid_price?(product) ||\n        out_of_stock?(product) ||\n        discontinued?(product)\n    end\n  end\n\n  private\n\n  def self.invalid_price?(product)\n    product.price.nil? || product.price &lt;= 0\n  end\n\n  def self.out_of_stock?(product)\n    product.stock &lt;= 0\n  end\n\n  def self.discontinued?(product)\n    product.discontinued_at.present?\n  end\nend<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-12\">\u30e1\u30bd\u30c3\u30c9\u30c1\u30a7\u30fc\u30f3\u3067\u306e\u52b9\u679c\u7684\u306a\u4f7f\u7528\u65b9\u6cd5<\/h3>\n\n\n\n<p>\u30e1\u30bd\u30c3\u30c9\u30c1\u30a7\u30fc\u30f3\u3092\u4f7f\u7528\u3059\u308b\u969b\u306e\u52b9\u679c\u7684\u306a\u30d1\u30bf\u30fc\u30f3\u3092\u7d39\u4ecb\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class OrderProcessor\n  def process_orders(orders)\n    orders\n      .reject(&amp;:cancelled?)\n      .reject(&amp;:shipped?)\n      .select(&amp;:paid?)\n      .map(&amp;:prepare_for_shipping)\n  end\nend\n\n# \u3088\u308a\u8907\u96d1\u306a\u30c1\u30a7\u30fc\u30f3\u306e\u4f8b\nclass DataProcessor\n  def process_data(data)\n    data\n      .reject { |item| item.nil? }\n      .map(&amp;:downcase)\n      .reject(&amp;:empty?)\n      .uniq\n      .sort\n  end\n\n  # \u30c1\u30a7\u30fc\u30f3\u3092\u5206\u5272\u3057\u3066\u53ef\u8aad\u6027\u3092\u5411\u4e0a\n  def process_data_readable(data)\n    cleaned_data = data.reject(&amp;:nil?)\n\n    cleaned_data\n      .map(&amp;:downcase)\n      .then { |items| remove_empty_items(items) }\n      .then { |items| normalize_items(items) }\n  end\n\n  private\n\n  def remove_empty_items(items)\n    items.reject(&amp;:empty?)\n  end\n\n  def normalize_items(items)\n    items.uniq.sort\n  end\nend\n\n# ActiveRecord\u3067\u306e\u4f7f\u7528\u4f8b\nclass Order &lt; ApplicationRecord\n  scope :recent, -&gt; { where('created_at &gt; ?', 30.days.ago) }\n  scope :pending, -&gt; { where(status: 'pending') }\n\n  def self.process_pending_orders\n    recent\n      .pending\n      .reject { |order| order.items.empty? }\n      .reject { |order| order.total_amount.zero? }\n  end\nend<\/pre>\n\n\n\n<p>\u3053\u306e\u3088\u3046\u306a\u5b9f\u8df5\u7684\u306a\u30d1\u30bf\u30fc\u30f3\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u4fdd\u5b88\u6027\u304c\u9ad8\u304f\u3001\u7406\u89e3\u3057\u3084\u3059\u3044\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-13\">\u3088\u304f\u3042\u308breject\u30e1\u30bd\u30c3\u30c9\u306e\u30a2\u30f3\u30c1\u30d1\u30bf\u30fc\u30f3\u3068\u89e3\u6c7a\u7b56<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-14\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u4f4e\u4e0b\u3055\u305b\u308b\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3<\/h3>\n\n\n\n<p>\u3088\u304f\u3042\u308b\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u4f4e\u4e0b\u306e\u539f\u56e0\u3068\u3001\u305d\u306e\u89e3\u6c7a\u7b56\u3092\u793a\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30a2\u30f3\u30c1\u30d1\u30bf\u30fc\u30f31: \u4e0d\u5fc5\u8981\u306a\u8907\u6570\u56de\u306e\u8d70\u67fb\ndef clean_data(data)\n  # \u8907\u6570\u306ereject\u3092\u9023\u9396\u3055\u305b\u308b\n  result = data.reject { |x| x.nil? }\n  result = result.reject { |x| x.empty? }\n  result = result.reject { |x| x.blank? }\n  result\nend\n\n# \u89e3\u6c7a\u7b561: \u6761\u4ef6\u3092\u7d71\u5408\u3059\u308b\ndef clean_data(data)\n  data.reject { |x| x.nil? || x.empty? || x.blank? }\nend\n\n# \u30a2\u30f3\u30c1\u30d1\u30bf\u30fc\u30f32: \u4e0d\u9069\u5207\u306a\u30e1\u30e2\u30ea\u4f7f\u7528\ndef process_large_file(filename)\n  lines = File.readlines(filename)  # \u5168\u884c\u3092\u30e1\u30e2\u30ea\u306b\u8aad\u307f\u8fbc\u3080\n  lines.reject { |line| line.strip.empty? }\nend\n\n# \u89e3\u6c7a\u7b562: \u30b9\u30c8\u30ea\u30fc\u30e0\u51e6\u7406\u3092\u4f7f\u7528\ndef process_large_file(filename)\n  File.open(filename).each_line.lazy\n      .reject { |line| line.strip.empty? }\n      .force\nend\n\n# \u30a2\u30f3\u30c1\u30d1\u30bf\u30fc\u30f33: \u4e0d\u8981\u306a\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u751f\u6210\ndef filter_active_users(users)\n  users.reject { |user| !user.active? }  # \u65b0\u3057\u3044Proc\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u751f\u6210\nend\n\n# \u89e3\u6c7a\u7b563: \u30e1\u30bd\u30c3\u30c9\u53c2\u7167\u3092\u4f7f\u7528\ndef filter_active_users(users)\n  users.reject(&amp;:inactive?)  # \u65e2\u5b58\u306e\u30e1\u30bd\u30c3\u30c9\u3092\u6d3b\u7528\nend<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-15\">\u4fdd\u5b88\u6027\u3092\u640d\u306a\u3046\u4f7f\u3044\u65b9\u3068\u6539\u5584\u65b9\u6cd5<\/h3>\n\n\n\n<p>\u4fdd\u5b88\u6027\u306b\u95a2\u3059\u308b\u4e00\u822c\u7684\u306a\u554f\u984c\u3068\u3001\u305d\u306e\u6539\u5584\u65b9\u6cd5\u3092\u793a\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u30a2\u30f3\u30c1\u30d1\u30bf\u30fc\u30f31: \u8907\u96d1\u306a\u6761\u4ef6\u3092\u30a4\u30f3\u30e9\u30a4\u30f3\u5316\nclass OrderProcessor\n  def process_orders(orders)\n    orders.reject { |order| \n      order.status == 'cancelled' || \n      order.items.empty? || \n      order.total_amount &lt; minimum_amount || \n      order.created_at &lt; 30.days.ago ||\n      !order.customer.active?\n    }\n  end\nend\n\n# \u89e3\u6c7a\u7b561: \u53ef\u8aad\u6027\u306e\u9ad8\u3044\u30e1\u30bd\u30c3\u30c9\u306b\u5206\u5272\nclass OrderProcessor\n  def process_orders(orders)\n    orders.reject(&amp;:invalid_for_processing?)\n  end\n\n  private\n\n  def invalid_for_processing?(order)\n    cancelled?(order) ||\n      empty_order?(order) ||\n      below_minimum_amount?(order) ||\n      too_old?(order) ||\n      inactive_customer?(order)\n  end\n\n  def cancelled?(order)\n    order.status == 'cancelled'\n  end\n\n  def empty_order?(order)\n    order.items.empty?\n  end\n\n  def below_minimum_amount?(order)\n    order.total_amount &lt; minimum_amount\n  end\n\n  def too_old?(order)\n    order.created_at &lt; 30.days.ago\n  end\n\n  def inactive_customer?(order)\n    !order.customer.active?\n  end\nend\n\n# \u30a2\u30f3\u30c1\u30d1\u30bf\u30fc\u30f32: \u72b6\u614b\u306e\u5909\u66f4\u3092\u4f34\u3046\u64cd\u4f5c\nclass DataCleaner\n  def clean_data(items)\n    items.reject do |item|\n      item.status = 'processed'  # \u526f\u4f5c\u7528\u3092\u6301\u3064\u64cd\u4f5c\n      item.invalid?\n    end\n  end\nend\n\n# \u89e3\u6c7a\u7b562: \u72b6\u614b\u306e\u5909\u66f4\u3092\u5206\u96e2\nclass DataCleaner\n  def clean_data(items)\n    valid_items = items.reject(&amp;:invalid?)\n    mark_as_processed(valid_items)\n    valid_items\n  end\n\n  private\n\n  def mark_as_processed(items)\n    items.each { |item| item.status = 'processed' }\n  end\nend<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u30a2\u30f3\u30c1\u30d1\u30bf\u30fc\u30f3\u3092\u907f\u3051\u3001\u6539\u5584\u7b56\u3092\u9069\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u4fdd\u5b88\u6027\u304c\u9ad8\u304f\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u826f\u3044\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-16\">reject\u30e1\u30bd\u30c3\u30c9\u3068Ruby\u3089\u3057\u3044\u5b9f\u88c5\u306e\u5b9f\u73fe<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-17\">\u95a2\u6570\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u8003\u3048\u65b9\u3092\u53d6\u308a\u5165\u308c\u308b<\/h3>\n\n\n\n<p>Ruby\u3067\u306e\u95a2\u6570\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u8003\u3048\u65b9\u3092\u6d3b\u304b\u3057\u305f<code>reject<\/code>\u306e\u4f7f\u7528\u65b9\u6cd5\u3092\u7d39\u4ecb\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"># \u7d14\u7c8b\u95a2\u6570\u3068\u3057\u3066\u306e\u30d5\u30a3\u30eb\u30bf\u30fc\u51e6\u7406\nmodule DataFilters\n  extend self\n\n  def invalid?(item)\n    item.nil? || item.empty?\n  end\n\n  def outdated?(item)\n    item.updated_at &lt; 30.days.ago\n  end\n\n  def incomplete?(item)\n    required_fields.any? { |field| item.send(field).nil? }\n  end\n\n  private\n\n  def required_fields\n    [:name, :email, :phone]\n  end\nend\n\n# \u95a2\u6570\u5408\u6210\u3092\u6d3b\u7528\u3057\u305f\u5b9f\u88c5\nclass FunctionalProcessor\n  def process_data(data)\n    data\n      .tap { |d| log_processing_start(d) }\n      .then { |d| remove_invalid_items(d) }\n      .then { |d| remove_outdated_items(d) }\n      .then { |d| remove_incomplete_items(d) }\n      .tap { |d| log_processing_end(d) }\n  end\n\n  private\n\n  def remove_invalid_items(items)\n    items.reject(&amp;DataFilters.method(:invalid?))\n  end\n\n  def remove_outdated_items(items)\n    items.reject(&amp;DataFilters.method(:outdated?))\n  end\n\n  def remove_incomplete_items(items)\n    items.reject(&amp;DataFilters.method(:incomplete?))\n  end\n\n  def log_processing_start(data)\n    Rails.logger.info(\"Starting processing #{data.count} items\")\n  end\n\n  def log_processing_end(data)\n    Rails.logger.info(\"Finished processing. #{data.count} items remaining\")\n  end\nend<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-18\">Enumerable \u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u4ed6\u306e\u30e1\u30bd\u30c3\u30c9\u3068\u306e\u7d44\u307f\u5408\u308f\u305b<\/h3>\n\n\n\n<p><code>reject<\/code>\u3068\u4ed6\u306e<code>Enumerable<\/code>\u30e1\u30bd\u30c3\u30c9\u3092\u7d44\u307f\u5408\u308f\u305b\u305f\u52b9\u679c\u7684\u306a\u4f7f\u7528\u65b9\u6cd5\u3092\u7d39\u4ecb\u3057\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">class AdvancedDataProcessor\n  # reject \u3068 map \u306e\u7d44\u307f\u5408\u308f\u305b\n  def process_users(users)\n    users\n      .reject(&amp;:inactive?)\n      .map(&amp;:profile)\n      .reject(&amp;:nil?)\n      .map(&amp;:to_hash)\n  end\n\n  # reject \u3068 reduce \u306e\u7d44\u307f\u5408\u308f\u305b\n  def calculate_active_total(orders)\n    orders\n      .reject(&amp;:cancelled?)\n      .reduce(0) { |sum, order| sum + order.total_amount }\n  end\n\n  # reject \u3068 group_by \u306e\u7d44\u307f\u5408\u308f\u305b\n  def categorize_active_items(items)\n    items\n      .reject(&amp;:archived?)\n      .group_by(&amp;:category)\n  end\n\n  # reject \u3068 partition \u306e\u7d44\u307f\u5408\u308f\u305b\n  def separate_items(items)\n    valid, invalid = items.partition { |item| !item.invalid? }\n    {\n      valid_items: valid,\n      invalid_items: invalid\n    }\n  end\n\n  # reject \u3068 each_with_object \u306e\u7d44\u307f\u5408\u308f\u305b\n  def summarize_active_users(users)\n    users\n      .reject(&amp;:inactive?)\n      .each_with_object(Hash.new(0)) do |user, summary|\n        summary[user.role] += 1\n      end\n  end\nend\n\n# \u5b9f\u8df5\u7684\u306a\u4f8b\uff1a\u8907\u96d1\u306a\u30c7\u30fc\u30bf\u51e6\u7406\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\nclass DataPipeline\n  def process_sales_data(sales)\n    sales\n      .reject { |sale| sale.amount.zero? }\n      .group_by(&amp;:product_id)\n      .transform_values do |product_sales|\n        product_sales\n          .reject { |sale| sale.created_at &lt; 30.days.ago }\n          .map(&amp;:amount)\n          .sum\n      end\n      .reject { |_, total| total &lt; minimum_sales_threshold }\n  end\n\n  private\n\n  def minimum_sales_threshold\n    1000\n  end\nend<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u5b9f\u88c5\u30d1\u30bf\u30fc\u30f3\u3092\u6d3b\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u8868\u73fe\u529b\u8c4a\u304b\u3067\u4fdd\u5b88\u6027\u306e\u9ad8\u3044Ruby\u3089\u3057\u3044\u30b3\u30fc\u30c9\u3092\u66f8\u304f\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u307e\u305f\u3001\u95a2\u6570\u578b\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u306e\u8003\u3048\u65b9\u3092\u53d6\u308a\u5165\u308c\u308b\u3053\u3068\u3067\u3001\u30b3\u30fc\u30c9\u306e\u4e88\u6e2c\u53ef\u80fd\u6027\u3068\u518d\u5229\u7528\u6027\u3092\u9ad8\u3081\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Warning: Undefined array key &#8220;is_admin&#8221; in \/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/ &#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":{"0":"post-1503","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ruby","7":"nothumb"},"_links":{"self":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/1503","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1503"}],"version-history":[{"count":1,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/1503\/revisions"}],"predecessor-version":[{"id":1508,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/1503\/revisions\/1508"}],"wp:attachment":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1503"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1503"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1503"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}