วิธี filter
วิธี filter ช่วยให้กรอง
องค์ประกอบอาร์เรย์ โดยคงไว้เฉพาะองค์ประกอบที่
ตรงตามเงื่อนไขที่กำหนด
วิธีนี้รับฟังก์ชันเป็นพารามิเตอร์ ซึ่งจะ
ทำงานสำหรับแต่ละองค์ประกอบของอาร์เรย์
ผลลัพธ์ของวิธีนี้จะคืนค่าเป็นอาร์เรย์ใหม่
ซึ่งจะมีเฉพาะองค์ประกอบเหล่านั้น
ที่ฟังก์ชันที่ส่งผ่านคืนค่า true
สามารถส่งพารามิเตอร์สามตัวเข้าไปในฟังก์ชันได้ หากมีพารามิเตอร์เหล่านี้ (ไม่จำเป็นต้องมีทั้งหมด) โดยตัวแรกจะได้รับองค์ประกอบ ของอาร์เรย์โดยอัตโนมัติ ตัวที่สองจะได้รับหมายเลขตำแหน่งในอาร์เรย์ (ดัชนี) และตัวที่สามคืออาร์เรย์นั้นเอง
โครงสร้าง
let อาร์เรย์ใหม่ = อาร์เรย์.filter(function(องค์ประกอบ, ดัชนี, อาร์เรย์) {
โค้ด
return true หรือ false
});
ตัวอย่าง
มาทำการกรองอาร์เรย์ โดยคงไว้เฉพาะ ตัวเลขบวก:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(function(elem) {
if (elem >= 0) {
return true;
} else {
return false;
}
});
console.log(res);
ผลลัพธ์การทำงานของโค้ด:
[5, 1, 1, 3, 4]
ตัวอย่าง
ย่อโค้ดโดยใช้ ฟังก์ชันลูกศร:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => {
if (elem >= 0) {
return true;
} else {
return false;
}
});
console.log(res);
ผลลัพธ์การทำงานของโค้ด:
[5, 1, 1, 3, 4]
ตัวอย่าง
ย่อโค้ดโดยใช้ การย่อ การดำเนินการทางตรรกะ:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => {
return elem >= 0;
});
console.log(res);
ผลลัพธ์การทำงานของโค้ด:
[5, 1, 1, 3, 4]
ตัวอย่าง
ย่อโค้ดโดยใช้ คุณลักษณะของฟังก์ชันลูกศร:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);
console.log(res);
ผลลัพธ์การทำงานของโค้ด:
[5, 1, 1, 3, 4]
ตัวอย่าง
หากจำเป็น สามารถส่ง อาร์เรย์เองเป็นพารามิเตอร์ตัวที่สาม:
let res = arr.filter(function(elem, index, arr) {
อาร์เรย์ arr จะสามารถเข้าถึงได้ที่นี่
});