Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

ตัวกรอง JavaScript:คำแนะนำทีละขั้นตอน

วิธีการกรอง JavaScript() สร้างอาร์เรย์ขององค์ประกอบจากอาร์เรย์ที่มีอยู่ เมธอด filter() ยอมรับฟังก์ชันเรียกกลับเป็นอาร์กิวเมนต์ ฟังก์ชันนี้จะประเมินว่าควรเพิ่มองค์ประกอบในรายการใหม่จากรายการที่มีอยู่หรือไม่


หากคุณเพิ่งเริ่มใช้ JavaScript คุณอาจไม่เคยได้ยิน filter() และ reduce() ฟังก์ชันจาวาสคริปต์ ฟังก์ชันเหล่านี้มีประโยชน์เมื่อคุณทำงานกับรายการวัตถุ หรือที่เรียกว่า อาร์เรย์ .

หากคุณเคยต้องการรับเฉพาะค่าบางค่าจากอาร์เรย์ คุณสามารถใช้ JavaScript filter() การทำงาน. ในบทช่วยสอนนี้ เราจะพูดถึงวิธีการใช้ฟังก์ชัน filter() โดยมีการอ้างอิงถึงตัวอย่าง

ทบทวนอาร์เรย์

อาร์เรย์ JavaScript เก็บรายการตั้งแต่ศูนย์ขึ้นไป รายการอาจเป็นตัวเลข อาร์เรย์อื่นๆ สตริง หรือใช้ข้อมูลประเภทอื่น พวกเขาใช้ดัชนีที่มีตัวเลขตั้งแต่ “0” เพื่อเข้าถึงรายการเฉพาะ

อาร์เรย์ช่วยให้คุณเก็บค่าหลายค่าไว้ในตัวแปรเดียวกันได้ วิธีนี้จะช่วยให้คุณเขียนได้ดีขึ้นและสะอาดขึ้น เพราะคุณไม่จำเป็นต้องเขียนตัวแปรหลายตัวเพื่อเก็บค่าของคุณ

นี่คือตัวอย่างอาร์เรย์ใน JavaScript:

let names = ["Alex", "Bill", "Connor", "Daniel", "Edna"];

อาร์เรย์ตัวกรอง JavaScript

JavaScript array filter() วิธีการสร้างอาร์เรย์ใหม่ตามเนื้อหาของอาร์เรย์ที่มีอยู่ เมธอด filter() จะประเมินฟังก์ชันการเรียกกลับของแต่ละรายการในอาร์เรย์ที่มีอยู่ รายการที่ตรงตามเงื่อนไขในฟังก์ชันเรียกกลับจะถูกเพิ่มในรายการใหม่

เมื่อใช้วิธีการกรอง เราสามารถดึงค่าที่ตรงตามเกณฑ์ที่กำหนดและเพิ่มลงในอาร์เรย์ใหม่ได้

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

กรองอาร์เรย์ JavaScript ไวยากรณ์

วิธีการกรองใช้ไวยากรณ์ต่อไปนี้:

var newArr = oldArr.filter(function(item) {
	return yourCondition;
});

รหัสนี้กำหนดอาร์เรย์ที่เรียกว่า "newArr" ตามเนื้อหาของอาร์เรย์ "oldArr" ฟังก์ชันเรียกกลับของเราจะคืนค่าไปยังอาร์เรย์ใหม่หากตรงตามเงื่อนไข เงื่อนไขตัวอย่าง ได้แก่:

  • รายการ> 5
  • รายการ ==“เจสซี่”
  • รายการ <3

คุณสามารถใช้ตัวดำเนินการเปรียบเทียบ JavaScript เพื่อสร้างเงื่อนไขของคุณได้ หรือคุณสามารถใช้คำสั่ง if การใช้คำสั่ง if ช่วยให้คุณควบคุมได้ว่าจะเพิ่มค่าใดค่าหนึ่งลงในรายการใหม่

กรองตัวอย่าง JavaScript

กรองรายการตัวเลข

มาเริ่มกันด้วยตัวอย่างง่ายๆ เรามีรายการซื้อจากร้านกาแฟ เราต้องการสร้างรายการใหม่ที่แสดงการซื้อมากกว่า $10

รายการซื้อของเรามีลักษณะดังนี้:

var purchases = [2.50, 2.70, 10.50, 12.30, 9.60, 2.30, 3.40];

เราสามารถใช้วิธี filter() เพื่อดึงข้อมูลการซื้อที่มีมูลค่ามากกว่า $10:

var big_purchases = purchases.filter(function(purchase) {
	return purchase > 10;
});

โปรแกรมของเราจะตรวจสอบว่าการซื้อมีมูลค่ามากกว่า $10 หรือไม่ มีการเพิ่มการซื้อใน big_purchases ระบุว่ามีมูลค่ามากกว่า 10 ดอลลาร์หรือไม่ มิฉะนั้น ถือว่าสละสิทธิ์

ค่าของตัวแปร big_purchases JavaScript คือ:

[10.5, 12.3]

filter() วิธีการส่งกลับองค์ประกอบทั้งหมดที่ผ่านการทดสอบที่เราได้กำหนดไว้ การทดสอบนี้คือ “รายการ> 10” หากเราต้องการเข้าถึงทุกการสั่งซื้อ เราสามารถอ้างอิงกลับไปที่รายการ “การซื้อ” เดิมของเราได้ วิธีการ filter() ของเราจะคืนค่าอาร์เรย์ของค่าที่มากกว่า $10

กรองอาร์เรย์ของวัตถุ

เรามีอาร์เรย์ที่มีชื่อของทุกคนในโรงเรียน:

var students = [
	{
		id: 1,
		name: "Alex",
		class: "First Grade",
		age: 5
	},
{
		id: 2,
		name: "Bill",
		class: "First Grade",
		age: 5
	},
{
		id: 3,
		name: "Connor",
		class: "Second Grade",
		age: 6
	}
];

เกิดอะไรขึ้นถ้าเราต้องการเรียกเฉพาะนักเรียนที่อยู่ชั้นประถมศึกษาปีแรก? ตัวกรอง() ทำให้ง่ายต่อการดำเนินการนี้ มาเขียนฟังก์ชันที่จะคืนค่านักเรียนระดับประถมทั้งหมดจากอาร์เรย์ "นักเรียน":

var firstGradeStudents = students.filter(function (student) {
	return student.class === “First Grade”;
});

ตัวกรอง() ใช้ในพารามิเตอร์เดียว นี่คือฟังก์ชันที่กำหนดการดำเนินการที่คุณเรียกใช้กับข้อมูลของคุณ

ตัวกรอง() ฟังก์ชันจะผ่านทุกอ็อบเจ็กต์ในอาร์เรย์ "นักเรียน" filter() ส่งคืนนักเรียนที่มีชั้นเรียนเท่ากับ "ชั้นประถมศึกษาปีแรก" ตัวดำเนินการ “===” หมายถึงความเท่าเทียมกัน

ฟังก์ชันตัวกรองจะสร้างอาร์เรย์ใหม่ด้วยค่าใหม่เหล่านี้ ซึ่งสามารถเข้าถึงได้ผ่านตัวแปร "firstGradeStudents"



บทสรุป

คุณสามารถใช้ filter() วิธีการอาร์เรย์เพื่อสร้างอาร์เรย์ใหม่จากเนื้อหาของอาร์เรย์ที่มีอยู่ เบาะแสอยู่ในชื่อด้วยเมธอด filter() filter() ตัวกรอง ออกจากองค์ประกอบจากอาร์เรย์ที่มีอยู่

และนั่นแหล่ะ! ตอนนี้คุณสามารถใช้ reduce() ใน JavaScript ได้อย่างมั่นใจยิ่งขึ้น หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีการเขียนโค้ดใน JavaScript โปรดอ่านบทความเกี่ยวกับบทแนะนำที่ดีที่สุดสำหรับผู้เริ่มต้นใช้งาน JavaScript