Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การใช้งานเมธอด every() ใน JavaScript

เมธอด 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)
  • ไม่เปลี่ยนแปลงอาร์เรย์ต้นฉบับ