มีสองวิธี เพื่อตรวจสอบว่าองค์ประกอบที่จัดเตรียมไว้ของอาร์เรย์ผ่านการทดสอบหรือไม่ คือ Array.filter() เมธอดและ _.filter() กระบวนการ. วิธีแรกเป็นวิธีจาวาสคริปต์ปกติ ในขณะที่วิธีหลังเป็นวิธีจาก underscore.js ซึ่งเป็นไลบรารี่ของจาวาสคริปต์
ไวยากรณ์
_.filter( list, conditions);
วิธีนี้ยอมรับสองพารามิเตอร์ หนึ่งคือรายการที่จะให้องค์ประกอบและเงื่อนไขอื่น ๆ (ไม่มีอะไรนอกจากรหัส)
ตัวอย่าง
ในตัวอย่างต่อไปนี้ ค่าทวีคูณของสามแสดงโดยใช้ _.filter() . ที่นี่ _.filter() เมธอดมีพารามิเตอร์สองตัว ตัวหนึ่งเป็นรายการและอีกตัวเป็นเงื่อนไข
<html> <body> <script type="text/javascript" src= "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> </script> </head> <body> <script> var arr = [3,4,5,6,9,77,36,42] var threeMul = _.filter(arr, function(num){ return num % 3 == 0; }); document.write(threeMul); </script> </body> </html>
ผลลัพธ์
3,6,9,36,42
Array.filter()
นี่เป็นวิธีจาวาสคริปต์ปกติ ใช้เพื่อกรองค่าไม่ว่าจะผ่านการทดสอบที่ให้มาหรือไม่
ตัวอย่าง
ในตัวอย่างต่อไปนี้ เงินเดือนที่มากกว่าเงินเดือนที่ระบุจะแสดงตามที่แสดงในผลลัพธ์
<html> <body> <p id="filter"></p> <script> var salary = [12000, 13000, 15000, 78000, 43000]; var specSal = salary.filter(myFunction); document.getElementById("filter").innerHTML = specSal; function myFunction(value, index, array) { return value > 20000; } </script> </body> </html>
ผลลัพธ์
78000,43000