เมธอด every() คืออะไร?
เมธอด every() ใช้ทดสอบว่า ทุกอิลิเมนต์ในอาร์เรย์ ผ่านเงื่อนไขที่ระบุในฟังก์ชัน callback หรือไม่ จะคืนค่า true ก็ต่อเมื่อทุกอิลิเมนต์ผ่านเงื่อนไขทั้งหมด มิฉะนั้นจะคืนค่า false
รูปแบบไวยากรณ์ (Syntax)
array.every(callback(element, index, array), thisArg)
พารามิเตอร์
- callback (บังคับ): ฟังก์ชันทดสอบสำหรับแต่ละอิลิเมนต์ รับพารามิเตอร์ 3 ค่า
element: อิลิเมนต์ปัจจุบันที่กำลังประมวลผลindex(ตัวเลือก): ดัชนีของอิลิเมนต์ปัจจุบันarray(ตัวเลือก): อาร์เรย์ที่กำลังเรียกใช้ every()
- thisArg (ตัวเลือก): ค่า
thisที่ใช้เมื่อเรียก callback
ตัวอย่างโค้ด
<!DOCTYPE html>
<html>
<body>
<script>
// ฟังก์ชันทดสอบ: ค่ามากกว่าหรือเท่ากับ 10
function isBigEnough(element, index, array) {
return (element >= 10);
}
var passed = [12, 5, 8, 130, 44].every(isBigEnough);
document.write("Test 1 (มีค่าน้อยกว่า 10): " + passed + "<br>"); // false
passed = [12, 54, 18, 130, 44].every(isBigEnough);
document.write("Test 2 (ทุกค่ามากกว่า 10): " + passed); // true
</script>
</body>
</html>
ตัวอย่างเพิ่มเติม
// ตรวจสอบว่าทุกค่าเป็นตัวเลข
[1, 2, 3].every(Number.isFinite); // true
[1, NaN, 3].every(Number.isFinite); // false
// ตรวจสอบว่าทุกสตริงมีความยาวมากกว่า 3
["apple", "banana", "cherry"].every(s => s.length > 3); // true
["hi", "hello"].every(s => s.length > 3); // false
// Short-circuit: หยุดทำงานทันทีเมื่อเจอ false
[1, 2, 3, 4].every(x => {
console.log("Checking:", x);
return x > 0;
});
// จะพิมพ์ Checking: 1, 2, 3, 4 แล้วคืน true
ความแตกต่างระหว่าง every() และ some()
| เมธอด | คืนค่า true เมื่อ | คืนค่า false เมื่อ |
|---|---|---|
every() |
ทุกอิลิเมนต์ผ่านเงื่อนไข | มีอิลิเมนต์อย่างน้อย 1 ตัวไม่ผ่าน |
some() |
มีอิลิเมนต์อย่างน้อย 1 ตัวผ่าน | ไม่มีอิลิเมนต์ไหนผ่านเลย |
หมายเหตุ
- เมธอด
every()จะไม่เรียก callback สำหรับดัชนีที่ถูกลบหรือไม่ได้กำหนดค่า (sparse arrays) - หากอาร์เรย์ว่างเปล่า
every()จะคืนค่าtrueเสมอ (Vacuous truth) - ไม่เปลี่ยนแปลงอาร์เรย์ต้นฉบับ