ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

           ในบทความนี้เราจะพูดถึงฟังก์ชั่น Javascript Array เรื่อง  Array.prototype.every ()  ฟังก์ชั่นนี้มีการใช้กันอย่างแพร่หลายและทำให้โค้ด  JavaScript  สะอาดเป็นโมดูลและเข้าใจง่าย

 

            ฟังก์ชัน Array.every() จะใช้เมื่อต้องการตรวจสอบความถูกต้องของแต่ละ element ของอาร์เรย์ที่กำหนด Array.every () จะรับฟังก์ชั่น callback ให้เป็นอาร์กิวเมนต์ซึ่งเรียกองค์ประกอบของทุกอาร์เรย์ ฟังก์ชัน Callback จะส่งคืนค่าจริงหรือเท็จ หากองค์ประกอบทั้งหมดของอาร์เรย์เป็นไปตามฟังก์ชันการตรวจสอบความถูกต้องและฟังก์ชันการเรียกกลับ(callback) จะส่งกลับค่า true ในองค์ประกอบทั้งหมดของอาร์เรย์  สรุปคือ Array.every () จะส่งกลับค่าจริง มิฉะนั้น Array.every () จะคืนค่าเท็จทันทีที่พบองค์ประกอบแรกที่ไม่ตอบสนองการทำงานของตัวตรวจสอบความถูกต้อง

 

Syntex : arr.every (callback [, thisArg])

พารามิเตอร์: 

- callback :ฟังก์ชั่นที่จะเรียกว่าองค์ประกอบแต่ละ อาร์เรย์
currentValue :  ค่าขององค์ประกอบที่กำลังดำเนินการอยู่ในปัจจุบัน
- index (optional) : index ของององค์ประกอบ currentValue ในอาร์เรย์ที่เริ่มต้นจาก 0 
- array (optional) : อาร์เรย์ที่ Array.every ได้เรียก
- thisArg (optional): บริบท(Context ) ที่จะถูกส่งผ่าน เพื่อใช้ในขณะที่เรียกใช้ฟังก์ชัน callback หากบริบทถูกส่งผ่านจะถูกใช้เป็น this สำหรับการเรียกใช้ฟังก์ชันcallback ของแต่ละครั้ง มิฉะนั้น undefined จะกำหนดเป็นค่าเริ่มต้น

 

กรณีการใช้งานตัวอย่าง:
1. การตรวจสอบว่าทุกองค์ประกอบ(element)ของอาร์เรย์เป็นจำนวนเต็มน้อยกว่า 100 หรือไม่
2. เพื่อตรวจสอบว่าทุกองค์ประกอบของอาร์เรย์เป็นชนิดข้อมูลเฉพาะไหม เช่น string 

 

ตัวอย่าง

  1. รับอาร์เรย์เขียนฟังก์ชั่นเพื่อตรวจสอบว่าelementทั้งหมดของอาร์เรย์นั้นน้อยกว่า 100 หรือไม่

ซึ่งถ้าหากวิธีการดังเดิมคือการใช้ JavaScript For Loop ดังโค้ดที่แสดงด้านล่าง

js_1

แม้ว่าการดำเนินการด้านบนนั้นง่ายต่อการเข้าใจแต่ต้องแลกกับโค้ดที่หลายบรรทัด แต่ด้วยการใช้ Array.every () ในการทำงานรูปแบบเดียวกันสามารถดำเนินการด้วยโค้ดที่ชัดเจนใช้งานง่ายและมีโค้ดน้อยลง ดังตัวอย่างด้านล่างนี้ 
js_2

  1. รับอาร์เรย์และเขียนฟังก์ชั่นเพื่อตรวจสอบว่า element ทั้งหมดของอาร์เรย์นั้นเป็นชนิดข้อมูลที่ระบุหรือ specified ไหม

เหมือนเดิมถ้าเป็นวิธีดังเดิมคือการวนซ้ำอาเรย์โดยใช้ for loopjs_3

ตัวอย่างโค้ดถ้าหากใช้ arr.Every ()  js_4

สรุป Array.prototype.every () เป็นเมธอดที่มาช่วยโค้ดสั้นลงแต่เพิ่มการทำงานหรือการดำเนินการที่เหนือกว่ามากขึ้น จากเดิมเราจะ วนซ้ำเพื่อให้มาซึ่งข้อมูล 

ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : JavaScript

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
หลักการ วิธีการทำเว็บไซต์แสดงได้หลายภาษา ด้วย PHP เขียนเว็บสองภาษา
โดย jamepiyawat ส 17 ส.ค. 2019 10:17 pm บอร์ด PHP Knowledge
0
30
ส 17 ส.ค. 2019 10:17 pm โดย jamepiyawat
ขอคำแนะนำ เว็บไซด์ค่ะ
โดย Luckluck ส 17 ส.ค. 2019 8:35 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
1
26
ส 17 ส.ค. 2019 8:40 pm โดย mindphp
Joomla website
โดย Luckluck ส 17 ส.ค. 2019 8:17 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
1
16
ส 17 ส.ค. 2019 8:37 pm โดย mindphp
Socratic แอปช่วยทำการบ้านและค้นหาบทเรียน
โดย jamepiyawat ส 17 ส.ค. 2019 5:56 pm บอร์ด Share Knowledge
0
12
ส 17 ส.ค. 2019 5:56 pm โดย jamepiyawat
สอบถามการใช้อัตราแลกเปลี่ยนในการบันทึกเจ้าหนี้ต่างประเทศ
โดย EyePornnipa ส 17 ส.ค. 2019 4:06 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
2
24
ส 17 ส.ค. 2019 4:09 pm โดย EyePornnipa
คำสั่งนี้คืออะไรครับ เหมือน short if หรือเปล่าครับ
โดย jamepiyawat ส 17 ส.ค. 2019 2:22 pm บอร์ด Programming - PHP
4
41
ส 17 ส.ค. 2019 3:40 pm โดย jamepiyawat
การลงทะเบียนผู้ค้ากับภาครัฐในระบบ e-GP
โดย EyePornnipa ส 17 ส.ค. 2019 1:53 pm บอร์ด M089 - นางสาวพรนิภา ราชธานี
0
15
ส 17 ส.ค. 2019 1:53 pm โดย EyePornnipa
หากจ่ายชำระค่าโทรศัพท์เกิน ควรบันทึกบัญชียังไง
โดย EyePornnipa ศ 16 ส.ค. 2019 12:10 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
1
32
ส 17 ส.ค. 2019 11:06 am โดย Amp_Audit
ยาหม่องสมุนไพรอินเดีย Himalaya Pain Balm 45 g กระปุกใหญ่ ใช้ดม ทาแก้วิงเวียนศีรษะ หอมสดชื่น ส่ง Kerry ถึงภายใน 1-3 วัน
โดย Tanadet ส 17 ส.ค. 2019 10:58 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
17
ส 17 ส.ค. 2019 10:58 am โดย Tanadet
สอบถาม การทำ web 2 ภาษา หน่อยครับ
โดย jirawoot ส 17 ส.ค. 2019 10:58 am บอร์ด Programming - C/C++ & java & Python
1
39
ส 17 ส.ค. 2019 10:19 pm โดย jamepiyawat
งานประจำวันที่ 17 กรกฎาคม 2562
โดย jamepiyawat ส 17 ส.ค. 2019 10:16 am บอร์ด M084 - นายปิยวัช เชาว์วิมล
2
11
ส 17 ส.ค. 2019 7:19 pm โดย jamepiyawat
งานประจำวันที่ 17 สิงหาคม 2562
โดย jirawoot ส 17 ส.ค. 2019 10:02 am บอร์ด M090 - นายจิระวุฒิ อัครลิขิตกุล
3
9
ส 17 ส.ค. 2019 10:54 pm โดย jirawoot
งานประจำวันที่ 17 สิงหาคม 2562
โดย EyePornnipa ส 17 ส.ค. 2019 10:02 am บอร์ด M089 - นางสาวพรนิภา ราชธานี
5
35
ส 17 ส.ค. 2019 7:06 pm โดย EyePornnipa
Google Assistant เพิ่มฟีเจอร์ใหม่ สามารถเตือนความจำเราได้
โดย jamepiyawat ศ 16 ส.ค. 2019 6:41 pm บอร์ด Share Knowledge
0
21
ศ 16 ส.ค. 2019 6:41 pm โดย jamepiyawat
วิธีการดึกข้อมูลโพสต์โดยไม่ให้ มีการ Query Sql ที่มาเกิน ใน phpbb
โดย Ittichai_chupol ศ 16 ส.ค. 2019 6:08 pm บอร์ด PHP Knowledge
0
16
ศ 16 ส.ค. 2019 6:08 pm โดย Ittichai_chupol
พิสูจน์รักแท้ 3,790 ขั้น ที่… เขาวงพระจันทร์ จ.ลพบุรี (รอย้ายไปในบอร์ด Thailand Hotel)
โดย Patipat ศ 16 ส.ค. 2019 5:47 pm บอร์ด M088 - ปฏิภัทร สารธรรม
0
4
ศ 16 ส.ค. 2019 5:47 pm โดย Patipat
B - กด Save สร้างรายการ Product บนเมนู HR ไม่ได้
โดย EyePornnipa ศ 16 ส.ค. 2019 3:25 pm บอร์ด M.D.Soft Co.,Ltd. - Tester
1
6
ศ 16 ส.ค. 2019 3:47 pm โดย thatsawan
Q - ต้องการทำรายการจ่ายค่าใช้จ่ายจ่ายล่วงหน้า บนเมนู HR
โดย EyePornnipa ศ 16 ส.ค. 2019 3:00 pm บอร์ด M.D.Soft Co.,Ltd. - Tester
2
10
ศ 16 ส.ค. 2019 3:43 pm โดย EyePornnipa
G - เตรียมอัพเดทโปรแกรม เฟส 4
โดย thatsawan ศ 16 ส.ค. 2019 2:06 pm บอร์ด AZKing (Main)
2
5
ส 17 ส.ค. 2019 11:00 pm โดย thatsawan
B - Import - Users ไม่ได้ [2019-08][003]
โดย tsukasaz ศ 16 ส.ค. 2019 11:28 am บอร์ด IIEC - Feedback Service System - Tester
0
2
ศ 16 ส.ค. 2019 11:28 am โดย tsukasaz