به دست آوردن یک عنصر (Element) از آرایه (Array)، که در شرط (Condition) خاصی صدق می کند، با اجرای یک تابع (Function) بر روی تک تک عنصرهای (Element) آرایه (Array) و چک کردن شرط (Condition) توسط تابع (Function) و برگرداندن اولین عنصری (Element) که در شرط صدق می کند، با روش find ، در JavaScript

با استفاده از روش find در JavaScript ، می توانیم یک عنصر (Element) از آرایه (Array)، که در شرط (Condition) خاصی صدق می کند را به دست می آوریم (اولین عنصری که در شرط صدق کند را برمی گرداند).

روش find ، یک تابع (Function) را در ورودی خود دریافت می کند و این تابع (Function) است که شرط (Condition) مورد نظرمان در آن تعریف شده است و اولین عنصری (Element) که شرط برای آن صادق باشد، تابع (Function) آن عنصر (Element) را با استفاده از return برمی گرداند.

نکته

اگر تابعی (Function) که به روش find می دهیم، تنها یک ورودی (input) داشته باشد، آنگاه روش find ، آن ورودی را به عنوان مقدار (Value) عنصر (Element) (یعنی خود عنصر) در نظر می گیرد (عنصر آرایه اصلی). یعنی به شکل کلی زیر :

اگر تابعی (Function) که به روش find می دهیم، دو ورودی (input) داشته باشد، آنگاه روش find ، ورودی اول را به عنوان مقدار (Value) عنصر (Element) (یعنی خود عنصر) و ورودی دوم را به عنوان شماره متناظر با عنصر (ایندکس - index) در نظر می گیرد (عنصر آرایه اصلی و شماره متناظر با آن). یعنی به شکل کلی زیر :

دقت شود که نام های تعیین شده برای ورودی های تابع (Function) در کدهای تعریف تابع (Function) مهم نیستند و هر چه باشند، روش find آنها را مطابق آنچه گفته شد، در نظر می گیرد.

نکته

روش find ، آرایه (Array) اصلی را تغییر نمی دهد.

نکته

ممکن است چند عنصر (Element) از آرایه (Array) در شرط (Condition) مورد نظر ما صدق کنند، اما روش find صرفا اولین عنصری (Element) که در شرط صدق کند را برمی گرداند. اگر بخواهیم که همه عنصرهایی (Element) که در شرط (Condition) صدق می کنند را به دست آوریم، می توانیم از روش filter در JavaScript استفاده نماییم :

نکته

وقتی روش find اولین عنصری (Element) که در شرط (Condition) صدق می کند را بیابد، آنگاه تابع (Function) را بر روی بقیه عنصرهای (Element) آرایه (Array) اجرا نخواهد کرد و فرآیند چک کردن عنصرهای (Element) آرایه (Array) متوقف خواهد شد.

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

مثال

نتیجه :

خطا - صفحه را دوباره بارگذاری کنید
نکته مهم

معمولا در وب سایت های مختلف، نحوه استفاده از روش find را به این صورت شرح می دهند که در هنگام تعریف تابع (Function)، صرفا شرط (Condition) مورد نظر در جلوی return نوشته می شود (یک شرط تک خطی). مثل تابع (Function) زیر :

اگرچه این مدل استاندارد تعریف تابع (Function) در هنگام استفاده از روش find است، اما اگر شرط (Condition) در جلوی return نوشته نشود و فقط در تابع (Function) ذکر کنیم که اگر شرط (Condition) برقرار بود، آنگاه کد مربوط به return اجرا شود (حالا هر چه جلوی return نوشته شده باشد و هر چه را که برگرداند)، آنگاه باز هم روش find به درستی عمل می کند (ما در تابع هر چه که تعیین کرده باشیم که توسط return برگردانده شود، روش find صرفا خود مقدار (Value) عنصر (Element) را برمی گرداند و مشکلی در عملکرد آن وجود نخواهد داشت) :

مثلا اگر در تابع (Function) بالا، در جلوی return ، فقط عدد ثابت 1 را بنویسیم، باز هم روش find به درستی عمل می کند، زیرا خط مربوط به return زمانی اجرا می شود که قبلا شرط (Condition) مورد نظرمان برآورده شده باشد (روش find مقدار (Value) عنصر (Element) را برمی گرداند، نه عدد ثابت 1 را) :

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

مثال

نتیجه :

خطا - صفحه را دوباره بارگذاری کنید
مثال

نتیجه :

خطا - صفحه را دوباره بارگذاری کنید
مثال

نتیجه :

خطا - صفحه را دوباره بارگذاری کنید
مثال

روش find ، خود مقدار (Value) عنصر (Element) از آرایه (Array) اصلی را برمی گرداند و ما حتی اگر در کدهای تابع (Function)، عملیاتی را بر روی عنصر (Element) انجام دهیم و نتیجه عملیات را در تابع (Function) در جلوی return بنویسیم، روش find آن نتیجه را به ما نمی دهد، بلکه خود مقدار (Value) عنصر (Element) از آرایه (Array) اصلی را به ما می دهد :

نتیجه :

مشاهده می کنید با وجودی که در تابع (Function)، مقدار (Value) عنصر (Element) را در 3 ضرب کرده ایم و نتیجه را در جلوی return نوشته ایم (تا تابع آن نتیجه را برگرداند)، ولی روش find ، خود مقدار (Value) عنصر (Element) از آرایه (Array) اصلی را برای ما برگردانده است :

خطا - صفحه را دوباره بارگذاری کنید
مثال

نتیجه :

خطا - صفحه را دوباره بارگذاری کنید
نکته

می توانیم تابع (Function) مورد نظرمان را در ورودی خود روش find تعریف کنیم. برای این منظور، دقیقا همان کدهایی که برای تعریف تابع (Function) می نوشتیم را درون پرانتز روش find می نویسیم.

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

مثال

اگر در کدهای JavaScript بالا دقت کنید، مشاهده می کنید که کد تعریف تابع (Function) زیر، درون پرانتز روش find نوشته شده است :

نتیجه :

خطا - صفحه را دوباره بارگذاری کنید

آرایه ای (Array) از شیء ها (Object) :

اگر آرایه (Array) مورد نظرمان، آرایه ای (Array) از شیء ها (Object) باشد، آنگاه می توانیم روش find را برای اجرای یک تابع (Function) بر روی مشخصه های (Property) شیء های (Object) موجود در آن آرایه (Array) به کار ببریم، تا شرط (Condition) مورد نظرمان بر روی مشخصه های (Property) شیء ها (Object) بررسی شود و سپس اولین عنصری (Element) که در شرط (Condition) صدق کرده است، برگردانده شود.

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

مثال

از روش JSON.stringify برای تبدیل یک شیء (Object) به یک رشته (String) استفاده کرده ایم تا بتوانیم آن را در خروجی صفحه نمایش دهیم.

نتیجه :

خطا - صفحه را دوباره بارگذاری کنید
مثال

از روش JSON.stringify برای تبدیل یک شیء (Object) به یک رشته (String) استفاده کرده ایم تا بتوانیم آن را در خروجی صفحه نمایش دهیم.

نتیجه :

خطا - صفحه را دوباره بارگذاری کنید
مثال

نتیجه :

خطا - صفحه را دوباره بارگذاری کنید
مثال

نتیجه :

خطا - صفحه را دوباره بارگذاری کنید
منابع و لینک های مفید
نویسنده علیرضا گلمکانی
شماره کلید 28320
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 0 0 0

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)