مهدیار جعفری
مهدیار جعفری
خواندن ۷ دقیقه·۲ سال پیش

تفاوت بین ()indexOf و ()findIndex در JavaScript

جاوا اسکریپت دارای دو متد ()indexOf() , findIndex که معمولا هر دو برای جست و جو عناصر در ارایه ها یا رشته ها استفاده می شوند که اما دارای تفاوت هایی بین این دو وجود دارد.بریم یک سری مثال هایی رو ببینیم متوجه تفاوت های این دو بشویم.


1.متد indexOf:

متد ()indexOf را می توانیم هم برای جست و جو عناصر در ارایه و رشته ها استفاده کنیم که ایندکس اولین المنتی را که یافت کند برمیگرداند که مثال سینتکسش رو باهم ببینیم:

  • array.indexOf (serachElement , fromIndex)
  • string.indexOf(searchValue ,fromIndex)


  • در بالا serachElement و searchValue (اجباری):مقداری که باید در ارایه یا رشته جست و جو شود.
  • در بالا fromIndex (اختیاری):ایندکسی که برای شروع جست و جو استفاده می شود که اگر خالی باشد به صورت دیفالت از ایندکس ۰ شروع می شود.

مثال برای ارایه ها:

در مثال بالا استفاده کردیم از indexOf برای جست و جو "banana" در که اولی ایندکسی که یافت کرد عدد ۱ رو برگرداند و اما "kiwi"در این ارایه وجود نداشت عدد 1- را برگرداند که نشان دهد این مقدار در ارایه وجود ندارد.


مثال برای رشته ها :

در مثال بالا هم که همون طور که مشخصه برای مقدار "fox" که ایندکس 16 رو برگردانده که از ایندکس 16 رو برگرداند و "cat"که ایندکس ۱- برگرداننده که نشان می دهد این مقدار در رشته ما وجود ندارد.


2.متد findeIndex:

این متد یک متد مرتبه بالا می باشد که در (es6) فقط برای استفاده از ارایه معرفی شد که برای برگرداندن اولین ایندکسی که در ارایه یافت میکند استفاده می شود که مثال سینتکسش رو باهم ببینیم :

  • array.findeIndex( callback ,thisArg)


  • در مثال بالا callback(اجباری):که خودش میتواند دارای سه ارگومانت element,index,array باشد.
  • در مثال بالا thisArg (اختیاری):که می توانیم از آن برای ارگومانت داینامیک با کلمه this در کال بک فانکشن خودمون استفاده کنیم.


مثال برای ارایه ای از اعداد:

در مثال بالا با استفاده findeIndex برای یافتن اولین عددی که بر 2 باقی مانده صفر داشته باشد رو استفاده که از ارگومانت thisArg هم استفاده کردیم که اولین ایندکسی که برگردانده ۱ هست که در صورتی که یافت نکند عدد ۱- رو بر میگرداند.


مثال برای ارایه ای از ابجکت ها :

در مثال بالا هم برای جست و جو اولین ابجکتی که مقدار "age" آن برابر ۳۰ باشد که کال بک فانکشن بررسی کرده و ایندکس ۱ رو برگرداننده است.


به طور خلاصه:

  • متد indexOf قابل استفاده برای هم ارایه و هم رشته ها استفاده می شود که اولین ایندکس یافت شده رو برمیگرداند.
  • متد findeIndex یک متد مرتبه بالا می باشد که فقط قابل استفاده برای ارایه ها هست که برای جست و جو المنتی که شرطی که callback ما مشخص میکند.


فهمیدن تفاوت های بین این دو روش به ما می تواند در انتخاب متد مورد نظرمان بر اساس نیازمون چه برای یک جست و جو ساده یا جست و جو ها با شرایط بیشتر کمک کند.


امیدوارم این مقاله برای شما مفید بوده باشد.





جست جوجاوا اسکریپتindexof findindexتفاوت بینjs
شاید از این پست‌ها خوشتان بیاید