توضیح:
این تابع یک تابع را دریافت می کند و براساس دستور شرطی که وجود دارد اولین مقداری که پیدا کند موقعیت آن را برگشت می دهد.
در صورت پیدا نکردن مقدار مورد نظر در آرایه مقدار ۱- را برگشت می دهد.
این متد برای آرایه خالی کار نمی کند.
این تابع تاثیری بر روی آرایه اصلی نمی گذارد.
نحوه نوشتن:
1 |
array.findIndex(function(currentValue, index, arr), thisValue); |
پارامترها:
- مقدار currentValue: مقدار جاری المنت آرایه موردنظر.(ضروری)
- مقدار index: اندیس المنت جاری.(اختیاری)
- مقدار arr: آرایه جدیدی که زیرمجموعه المنت جاری است.(اختیاری)
- مقدار thisValue: تعیین مقدار this در صورت استفاده در کد.در صورت استفاده از دستور this و عدم تعیین پارامتر آن مقدار undefined در نظر گرفته میشود.(اختیاری)
مقدار بازگشت:
در صورت یافتن براساس شرط تعیین شده موقعیت مقدار را برگشت میدهد در غیر اینصورت مقدار ۱- برگشت میدهد
وضعیت پشتیبانی از مرورگرها:
مرورگر Chrome | مرورگر Firefox | مرورگر IE | مرورگر Edge | مرورگر Safari | مرورگر Opera |
---|---|---|---|---|---|
همگی | همگی | همگی | همگی | همگی | همگی |
مثال:
1 2 3 4 5 6 7 8 |
const ages = [3, 10, 18, 20]; ages.findIndex(checkAge); function checkAge(age) { return age > 18; } //3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<p><input type="number" id="toCheck" value="18"></p> <button onclick="myFunction()">Test</button> <p>Any values above: <span id="demo"></span></p> <script> const numbers = [4, 12, 16, 20]; function checkValue(x) { return x > document.getElementById("toCheck").value; } function myFunction() { document.getElementById("demo").innerHTML = numbers.findIndex(checkValue); } </script> //2 |
1 2 3 4 5 6 7 |
const numbers = [4, 9, 16, 25, 29]; let first = numbers.findIndex(myFunction); function myFunction(value, index, array) { return value > 18; } //3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
let names = [ {name : "amir javanmir", age : 30}, {name : "shahryar barati", age : 31} ]; let findName = function(arr,name){ let result = arr.findIndex(function(value,index){ return value.name.toLowerCase === name.toLowerCase; }) return arr[result]; } findName(names,"Amir Javanmir"); //{name : "amir javanmir", age : 30} |