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

บทบาทของเมธอด filter() ใน JavaScript

เมธอด filter() ของอาร์เรย์ JavaScript สร้างอาร์เรย์ใหม่ที่มีเฉพาะองค์ประกอบที่ผ่านการทดสอบจากฟังก์ชันที่ระบุ

พารามิเตอร์:

  • callback — ฟังก์ชันทดสอบแต่ละองค์ประกอบ คืน true เพื่อเก็บ, false เพื่อตัดออก
  • thisObject (optional) — ค่า this ภายใน callback

ตัวอย่าง

ลองรันโค้ดด้านล่างเพื่อเรียนรู้การทำงานกับเมธอด filter() ใน JavaScript:

<html>
  <head>
    <title>JavaScript Array filter Method</title>
  </head>
  <body>
    <script>
      if (!Array.prototype.filter) {
        Array.prototype.filter = function(fun /*, thisp*/) {
          var len = this.length;
          if (typeof fun != "function") throw new TypeError();
          var res = new Array();
          var thisp = arguments[1];
          for (var i = 0; i < len; i++) {
            if (i in this) {
              var val = this[i];
              if (fun.call(thisp, val, i, this)) res.push(val);
            }
          }
          return res;
        };
      }
      function isBigEnough(element, index, array) {
        return (element >= 10);
      }
      var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);
      document.write("Filtered Value : " + filtered );
    </script>
  </body>
</html>

โค้ดนี้กรองตัวเลขที่มากกว่าหรือเท่ากับ 10 จากอาร์เรย์ [12, 5, 8, 130, 44] ผลลัพธ์: "Filtered Value : 12,130,44" เมธอด filter() ไม่เปลี่ยนอาร์เรย์เดิม คืนอาร์เรย์ใหม่ (immutable)