ECMASCRIPT5 กำหนด 5 วิธีการวนซ้ำสำหรับอาร์เรย์ แต่ละวิธีได้รับพารามิเตอร์สองตัว: ฟังก์ชันที่จะทำงานในแต่ละรายการและวัตถุขอบเขต (ไม่บังคับ) ที่เรียกใช้ฟังก์ชัน (เช่นค่าที่มีผลต่อสิ่งนี้) ฟังก์ชั่นที่ส่งผ่านไปยังวิธีการเหล่านี้ได้รับสามพารามิเตอร์: ค่าของรายการอาร์เรย์ตำแหน่งของรายการในอาร์เรย์และวัตถุอาร์เรย์เอง ขึ้นอยู่กับวิธีการใช้งานค่าส่งคืนหลังจากการดำเนินการของฟังก์ชั่นนี้อาจหรือไม่อาจส่งผลกระทบต่อค่าคืนของวิธี 5 วิธีการวนซ้ำเหล่านี้คือ:
วิธีการวนซ้ำทั้งห้าวิธียอมรับสองพารามิเตอร์: ฟังก์ชันที่จะทำงานในแต่ละรายการและขอบเขตของฟังก์ชันที่ทำงาน (ไม่บังคับ)
ทุก (): เรียกใช้ฟังก์ชั่นที่กำหนดในแต่ละรายการในอาร์เรย์ หากฟังก์ชั่นส่งคืนจริงสำหรับแต่ละรายการมันจะกลับมาจริง
ตัวกรอง (): เรียกใช้ฟังก์ชั่นที่กำหนดในแต่ละรายการในอาร์เรย์ การส่งคืนอาร์เรย์ของรายการที่จะส่งคืนจริง
foreach (): เรียกใช้ฟังก์ชั่นที่กำหนดสำหรับแต่ละรายการในอาร์เรย์ ฟังก์ชั่นไม่ส่งคืนค่า
MAP (): เรียกใช้ฟังก์ชั่นที่กำหนดในแต่ละรายการในอาร์เรย์ ส่งคืนฟังก์ชั่นที่ประกอบด้วยผลลัพธ์ของการโทรแต่ละฟังก์ชัน
บาง (): เรียกใช้ฟังก์ชั่นที่กำหนดในแต่ละรายการในอาร์เรย์ หากฟังก์ชั่นส่งคืนจริงสำหรับอย่างใดอย่างหนึ่งมันจะกลับมาจริง
วิธีการทั้งหมดข้างต้นจะไม่แก้ไขค่าที่มีอยู่ในอาร์เรย์
ในวิธีการข้างต้นทุก () และบาง () มีความคล้ายคลึงกันมากทั้งคู่ใช้ในการสอบถามว่ารายการในอาร์เรย์เป็นไปตามเงื่อนไขที่แน่นอนหรือไม่ สำหรับทุกวิธี () ฟังก์ชั่นที่ผ่านจะต้องส่งคืนจริงสำหรับแต่ละรายการก่อนที่วิธีนี้จะกลับมาจริง มิฉะนั้นจะส่งคืนเท็จ วิธีบางอย่าง () จะส่งคืนจริงตราบใดที่ฟังก์ชั่นที่ผ่านส่งกลับจริงไปยังรายการในอาร์เรย์ ตัวอย่างเช่น:
var nums = [1,2,3,4,5,4,3,3,2,1]; var result = nums.every (ฟังก์ชั่น (รายการ, ดัชนี, อาร์เรย์) {return (รายการ> 2);}) console.info (ผลลัพธ์);รหัสข้างต้นจะพิมพ์เท็จในคอนโซล
var nums = [1,2,3,4,5,4,3,3,2,1]; var result = nums.some (ฟังก์ชั่น (รายการ, ดัชนี, อาร์เรย์) {return (รายการ> 2);}) console.info (ผลลัพธ์);รหัสด้านบนพิมพ์จริงในคอนโซล
ต่อไปนี้เป็นตัวอย่างของฟังก์ชันตัวกรอง () ซึ่งใช้ฟังก์ชั่นที่ระบุเพื่อพิจารณาว่ามีรายการในอาร์เรย์ที่ส่งคืนหรือไม่ ตัวอย่างเช่นในการส่งคืนอาร์เรย์ที่มีค่าทั้งหมดมากกว่า 2 คุณสามารถใช้รหัสต่อไปนี้:
var nums = [1,2,3,4,5,4,3,3,2,1]; var result = nums.filter (ฟังก์ชั่น (รายการ, ดัชนี, อาร์เรย์) {return (รายการ> 2);}) console.info (ผลลัพธ์); // [3,4,5,4,3]รหัสข้างต้นส่งคืนอาร์เรย์ที่มี 3, 4, 5, 4, 3 โดยเรียกใช้วิธีการกรอง () วิธีนี้มีประโยชน์มากสำหรับการสอบถามอาเรย์ทั้งหมดที่ตรงตามเกณฑ์บางอย่าง
เมธอดแผนที่ () ยังส่งคืนอาร์เรย์และแต่ละรายการในอาร์เรย์นี้เป็นผลมาจากการเรียกใช้ฟังก์ชั่นขาเข้าในรายการที่เกี่ยวข้องในอาร์เรย์ดั้งเดิม ตัวอย่างเช่นคุณสามารถคูณแต่ละรายการในอาร์เรย์ด้วย 2 จากนั้นส่งคืนอาร์เรย์ของผลิตภัณฑ์เหล่านี้:
var nums = [1,2,3,4,5,4,3,3,2,1]; var result = nums.map (ฟังก์ชั่น (รายการ, ดัชนี, อาร์เรย์) {return item * 2;}) console.info (ผลลัพธ์); // [2,4,6,8,10,8,6,4,2]วิธีการแผนที่ () เหมาะสำหรับการสร้างอาร์เรย์ที่มีรายการทีละรายการในอาร์เรย์อื่น
วิธีสุดท้ายคือวิธีการ foreach () ซึ่งเพิ่งเรียกใช้ฟังก์ชั่นที่ส่งผ่านในทุกรายการในอาร์เรย์ วิธีนี้ไม่มีค่าส่งคืนโดยพื้นฐานแล้วการทำซ้ำอาร์เรย์โดยใช้ A for loop ดูตัวอย่างต่อไปนี้:
var nums = [1,2,3,4,5,4,3,3,2,1]; nums.foreach (ฟังก์ชั่น (รายการ, ดัชนี, อาร์เรย์) {// ดำเนินการการดำเนินการที่ต้องการ})วิธีการอาร์เรย์เหล่านี้ใน JS สามารถอำนวยความสะดวกในการประมวลผลงานอาร์เรย์ได้อย่างมากโดยการดำเนินการที่แตกต่างกัน
เบราว์เซอร์ที่สนับสนุนวิธีการวนซ้ำเหล่านี้คือ: IE9+, Firefox2+, Safari3+, Opera9.5+และ Chrome
หมายเลข var = [1, 2, 3, 4, 5, 4, 3, 2, 1]; // ทุก () และบาง () มีความคล้ายคลึงกันมากที่สุด // ทุกรายการ () รายการ: รายการ Traversal ปัจจุบันดัชนี: ดัชนีรายการปัจจุบันอาร์เรย์: อาร์เรย์อาร์เรย์เอง var everyResult = numbers.every (ฟังก์ชั่น (รายการ, ดัชนี, อาร์เรย์) {return item> 2;}); การแจ้งเตือน (EveryResult); // false // บาง () var someresult = number.some (ฟังก์ชั่น (รายการ, ดัชนี, อาร์เรย์) {return item> 2;}); การแจ้งเตือน (someresult); // true // ตัวกรอง var filterResult = number.filter (ฟังก์ชั่น (รายการ, ดัชนี, อาร์เรย์) {return item> 2;}); การแจ้งเตือน (FilterResult); // [3,4,5,4,3] // map () var mapResult = number.map (ฟังก์ชั่น (รายการ, ดัชนี, อาร์เรย์) {return (รายการ * 2);}); การแจ้งเตือน (MapResult); // [2,4,6,8,10,8,6,4,2,2] // foreach ไม่มีความแตกต่างจากสำหรับ loop var var foreachresult = number.foreach (ฟังก์ชั่น (รายการ, ดัชนี, อาร์เรย์) {แจ้งเตือน (รายการ)});ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ ฉันหวังว่าจะให้คำแนะนำแก่คุณในการทำความเข้าใจวิธีการทำซ้ำ JavaScript