เมธอด 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)