گردش آرایه ها در جاوا اسکریپت :موضوع قسمت نهم آموزش جاوا اسکریپت توسط گروه کدپز
پردازش آرایه ها
در قسمت هشتم مطالبی درباره آرایه ها و مرتب سازی آنها گفته شد. در این جلسه گفته خواهد شد که اگر بخواهیم روی متغیر ها تغییر و پردازشی انجام بدهیم توابعی در جاوا اسکریپت وجود دارد که این کار را برای ما انجام می دهد.
دستور ()forEach
عبارت forEach به معنی “برای هر کدام” است. به عبارت دیگر این دستور می گوید برای هر کدام از اعضای آرایه فلان کار را انجام بده. به کد زیر توجه کنید:
1 |
1 |
<script><br>var txt = "";<br>var numbers = [45, 4, 9, 16, 25];<br>numbers.forEach(myFunction);<br>document.getElementById("demo").innerHTML = txt;<br> <br>function myFunction(value) {<br> txt = txt + value + "<br>"; <br>}<br></script> |
1 |
همانطور که میبینید در این کد گفته ایم برای هر عضو آرایه (همان اعداد داخل آرایه) یک تابع به نام myFunction را اجرا کن. سپس پایین تر این تابع را تعریف کرده ایم و گفته ایم که مقادیر را تک تک چاپ کند. |
دستور ()map
این دستور با اجرای یک تابع روی تک تک اعضای آرایه، یک آرایه ی جدید می سازد. البته باید توجه داشت که این دستور تابع مورد نظر را روی اعضای بدون مقدار اجرا نمی کند و آرایه ی اصلی را نیز تغییر نمی دهد. نمونه ی استفاده از این کد را در زیر مشاهده می کنید:
1 |
<script><br>var numbers1 = [45, 4, 9, 16, 25];<br>var numbers2 = numbers1.map(myFunction);<br> <br>document.getElementById("demo").innerHTML = numbers2;<br> <br>function myFunction(value, index, array) {<br> return value * 2;<br>}<br></script> |
کد بالا با استفاده از دستور ()map
مقادیر موجود در تابع را دو برابر می کند و سپس نمایش می دهد.
دستور ()filter
دستور ()filter
اعضای یک آرایه را بر اساس نوعی تست دلخواه می سنجد و در صورت پذیرفته شدن، با همان اعضا یک آرایه ی جدید می سازد.به نحوه ی استفاده از این تابع توجه نمایید:
1 |
<script><br>var numbers = [45, 4, 9, 16, 25];<br>var over18 = numbers.filter(myFunction);<br> <br>document.getElementById("demo").innerHTML = over18;<br> <br>function myFunction(value, index, array) {<br> return value > 18;<br>}<br></script> |
کد بالا با اعضایی که مقدارشان بیشتر از 18 است یک آرایه ی جدید می سازد.
دستور ()reduce
دستور ()reduce
تابعی را روی تک تک اعضای آرایه اجرا می کند تا یک مقدار نهایی را تولید کند.باید بدانید که این دستور از چپ به راست کار می کند و خود آرایه را تغییر نمی دهد.
1 |
<script><br>var numbers = [45, 4, 9, 16, 25];<br>var sum = numbers.reduce(myFunction);<br> <br>document.getElementById("demo").innerHTML = "The sum is " + sum;<br> <br>function myFunction(total, value, index, array) {<br> return total + value;<br>}<br></script> |
این دستور در مثال بالا مقادیر آرایه را جمع می زند و یک مقدار واحد را تحویل ما می دهد.
دستور ()reduceRight
دستور ()reduceRight
کاملا مشابه متد فوق می باشد (reduce) اما تفاوتش آنجاست که از راست به چپ کار می کند.
دستور ()every
دستور ()every
چک می کند که تمام اعضای آرایه، یک تست مشخص را پاس کنند.
1 |
<script><br>var numbers = [45, 4, 9, 16, 25];<br>var allOver18 = numbers.every(myFunction);<br> <br>document.getElementById("demo").innerHTML = "All over 18 is " + allOver18;<br> <br>function myFunction(value, index, array) {<br> return value > 18;<br>}<br></script> |
این کد چک می کند تا ببیند آیا تمام اعضای آرایه بیشتر از 18 هستند یا خیر
دستور ()some
دستور ()some
این مسئله را چک می کند که آیا برخی از اعضای یک آرایه، تستی مشخص را پاس می کنند یا خیر.
دستور ()indexOf
دستور ()indexOf
یک آرایه را بر اساس یک مقدار خاص می گردد و سپس ایندکس یا اندیس آن مقدار را بر میگرداند
دستور ()find
دستور ()find
یک تست مشخص را روی اعضای آرایه اجرا می کند و اولین مقداری که این تست را پاس کند برمیگرداند.
دستورات زیادی برای آرایه ها و پردازش آنها وجود دارد که سعی کردم به مهم ترین های آن بپردازم.امیدوارم براتون مفید باشه.برای دیدن دستورات دیگر و مثال های بیشتر از این دستورات می توانید به w3school مراجعه کنید.