آشنایی با متد های find و filter در جاوا اسکریپت

سلامی مجدد ...

Filter and Find in javascript
Filter and Find in javascript
در این مقاله قصد دارم شما رو با دو تا از متد های خفن مخصوص ارایه اشنا کنم که قطعا خیلی بدردتون میخوره.

(تو پرانتز بگم بجز اینها یک متد خوب دیگه که مشابه این ها هستند با کمی تفاوت اساسی رو هم مطرح میکنم)
findIndex
هست اون یکیم!!!

بنظر من متد های مربوط به ارایه در جاوااسکریپت(خلاصش میکنم به جی اس در دفعات بعد) ارایه ها در جی اس رو بسیار انعطاف پذیر کرده در مقاله اولم به متد splice پرداختم بصورت خیلی کامل بریم تو کار این دوتا

https://vrgl.ir/ConHl

اگر با splice اشنایی ندارید تو مقاله بالا بصورت خیلی کامل توضیح دادم !!!


Find

این متد داخل ارایه میگرده و دقیقا اولین مقداری که داخل ارایه با مقدار مورد نظر ما برابر باشه رو بر میگردونه در یک مثال خفن توضیحش میدم:)

نکته: تمام متد هایی که معرفی میکنم همه یک پارامتر دارند که این پارامتر مقدار تکی هر ارایه رو بر میگردونه مثلا در فاز اول (مقدار اندیس ۰ رو برمیگردونه :)
نامشون رو هم دلخواه میتونیم بزاریم تو مثلا پایین نام پارامتر رو item قرار دادم.
چون پارامتر داره بهمون یکی از مقادیر ارایه برمیگردونه بهتره نامی انتخاب نکنیم که جمع باشه، مثلا:
items درست نیست
,ولی item درسته
البته هیچ اجباری در این ماجرا نیست !!!


مثال بالا از ساده هم ساده تر بود، اگر موافق هستید یک مقدار سخت ترش کنیم و به شکلی تبدیلش کنیم که شبیه به استفاده در پروژه عملی باشه (البته کامنت های بالا حذف میشن :)

تو پروژه هم شاید ممکن باشه(ممکن نه!!! قطعا بدردتون میخوره) از این روش نیاز باشه استفاده کنید...
تو پروژه هم شاید ممکن باشه(ممکن نه!!! قطعا بدردتون میخوره) از این روش نیاز باشه استفاده کنید...


یه نکته مهم بوجود میاد که اینم از قلم نندازیم خیلی خوبه...
اگر که این متد نتونست مقدار مارو داخل ارایه پیدا کنه چی میشه؟؟؟
 مقدار undefined برمیگرده برامون
مقدار undefined برمیگرده برامون

یک نکته کوچولو دیگه مونده که اون هم مطرح کنم میریم سراغ متد filter ?

اگر داخل ارایه دوتا مقدار یک شکل پیدا شد اونوقت کدومش برمیگرده ؟؟؟

داخل یک مثال خدمتتون مطرح میکنم:)

کامنت رو مطالعه کنید حتما...اینجا ای دی ۲ برمیگرده چون از اندیس اول ارایه سرچ میکنه و تا اون مقدار مشابه پیدا کنه  متد متوقف میشه و result میده بهمون اوکی؟
کامنت رو مطالعه کنید حتما...اینجا ای دی ۲ برمیگرده چون از اندیس اول ارایه سرچ میکنه و تا اون مقدار مشابه پیدا کنه متد متوقف میشه و result میده بهمون اوکی؟



Filter

تقریبا نحوه کار این هم مثل متد find هست اما از اسمش معلومه تفاوت دارن

راحتتون میکنم:

متد find میاد صرفا دنبال یک مقدار میگرد و تا پیداش کرد متوقف میشه کاربردش برای پیدا کردن id و اینجور چیزاس.

ولی فیلتر میاد تمام مقادیری که مساوی مقدار مشخص شده ما هستند رو در قالب array به ما برمیگردونه.

داخل مثال حرفم بهتر متوجه میشید...

اینجا چون دو نام مشابه مقدار مشخص شده ما بود هردوش رو برگردوند
اینجا چون دو نام مشابه مقدار مشخص شده ما بود هردوش رو برگردوند
یک نکته مهم: حتی اگر مقدار یافت شده در فیلتر یک دونه باشه هم به ما در قالب ارایه برمیگردونه
یک نکته مهم دیگه: حتی اگر هیچ مقداری مساوی مقدار مشخص شده ما یافت نشه باز هم ارایه بر میگرده و اینبار undefined نمیاد. البته یک ارایه خالی خالی یعنی این []



بریم سراغ اخرین متد که میخوام مطرح کنم و پایان کار اسمش هست ?

findIndex

این متد دقیقا مثل متد find هست عملکرد هاش با این تفاوت که بجای برگردوندن مقدار میاد اندیس مقدار، در ارایه رو به ما میده، بیشتر از این خستتون نمیکنم و با یک مثال توضیح میدم یعنی چی :)‌ :(

همونطور که میبینید اندیس یک بهمون داد که داخل ارایه دانش اموزان این اسم در اندیس یک است
همونطور که میبینید اندیس یک بهمون داد که داخل ارایه دانش اموزان این اسم در اندیس یک است



دلیل اینکه داخل متد های دوم و سوم دربارشون کمتر توضیح دادم این بود که داخل متد اول ترفند های مهمش گفتم و اگر دوباره میخواستم تکرار کنم حوصله سر بر بود حتی برای خود من.

یک نکته بگم حتما خودتون هم با این متد ها بازی کنید قطعا فنونی دارند که شاید بلد نیستم یا فراموش کردم توضیح بدم(سرچ هم بی تاثیر نیست!!!) اما مطالب مهمش رو گفتم خدمتتون


لطفا اگر از مقاله راضی بودید، برای دوستانتون هم ارسال کنید تا از مقاله استفاده کنند.

اگر مفید بود براتون لایک فراموش نکنید.

از دنبال کننده های من هم بشید تا بیشتر مقاله بزارم :)

ممنون که وقت گذاشتید.