Array.findIndex()
คืน Index แรก ที่สมาชิกผ่านเงื่อนไข Callback หาไม่เจอ คืน -1 หยุดค้นหาทันทีที่เจอ (Short-circuit)
ไวยากรณ์
arr.findIndex(callback(element[, index[, array]])[, thisArg])
ตัวอย่าง
<html> <body> <p id="demo"></p> <script>
var wages = [6000, 10000, 17000, 28000, 30000];
function checkSal(wage) {
return wage >= 15000;
}
document.getElementById('demo').innerHTML = wages.findIndex(checkSal);
</script> </body> </html>
ผลลัพธ์
2
คำอธิบาย
- Index 0: 6000 < 15000 → ไม่ผ่าน
- Index 1: 10000 < 15000 → ไม่ผ่าน
- Index 2: 17000 ≥ 15000 → ผ่าน! คืน 2 ทันที
- Index 3, 4: ไม่ได้เช็กแล้ว (Short-circuit)
เปรียบเทียบเมธอดค้นหา
| Method | Return | Use Case |
|---|---|---|
| indexOf() | Index | ค้นหาค่าที่แน่นอน (Primitive) |
| findIndex() | Index | ค้นหาด้วยเงื่อนไข (Callback) |
| find() | Value | ค้นหาค่าที่ผ่านเงื่อนไข |
| filter() | Array | ค้นหาทุกค่าที่ผ่านเงื่อนไข |