استفاده از متد grep در جی کوئری

Ratings
(0)

مسئله

ما نیاز داریم تا در یک آرایه، عناصری را فیلتر و حذف کنیم.


راه حل

(function($) {
   $(document).ready(function() {
   var months = [ 'January', 'February', 'March', 'April', 'May','June', 'July', 'August', 'September', 'October','November', 'December'];
   months = $.grep(months, function(value, i) {
     return ( value.indexOf('J') == 0 );
   });
   $('#months').html( '<li>' + months.join('</li><li>') + '</li>' );
 });
})(jQuery);

 در کدهای بالا، از متد $.grep() برای فیلتر کردن آرایه ی months استفاده می شود به طوری که این آرایه شامل مقادیری می شود که با حرف بزگ J آغاز می شوند. متد $.grep آرایه ی فیلتر شده را برمی گرداند. متد callback (متد پاسخ دهنده در خط 4) که توسط برنامه نویس نوشته شده است، دو آرگومان می گیرد، و  یک مقدار بولین را برمی گرداند؛ که اگر true باشد، عنصر مورد نظر نگهداری می شود و اگر false باشد، آن عنصر را حذف می کند. اولین آرگومان مشخص شده، مقدار هر عنصر آرایه را در خود جای می دهد(در اینجا آرایه ما months است) و آرگومان دوم که پاس داده شده است، یک مقدار افزایشی را مشخص می کندکه تعداد دفعاتی که متد grep() مورد تکرار قرار گرفته است را تعیین می کند.

 بنابراین اگر بخواهیم ماه هایی که باقی مانده ی آنها در تقسیم بر 2 صفر است، را حذف کنیم، می توانیم از تست ( i % 2 ) == 0 استفاده کنیم؛ که باقی مانده ی i نسبت به 2 را برمی گرداند. علامت درصد(%) یک عملگر پیمانه ای(modulus operator) است که باقی مانده ی یک تقسیم را برمی گرداند. بنابراین وقتی که i=4 باشد، باقی مانده ی آن بر 2 برابر با 0 خواهد بود. 

(function($) {
   $(document).ready(function() {
     var months = [ 'January', 'February', 'March', 'April', 'May','June', 'July', 'August', 'September', 'October','November', 'December'];
     months = $.grep(months, function(value, i) {
         return ( i % 2 ) == 0;
     });
     $('#months').html( '<li>' + months.join('</li><li>') + '</li>' );
  });
})(jQuery);

  {module کمک نقدی به نویسنده}

  • بازدید: 502

نوشتن دیدگاه

لطفا نظرات خود را بیان کنید. به سوالات در سریع ترین زمان پاسخ داده خواهد شد.اما به نکات زیر توجه کنید:
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.

ارسال