มีสิ่งใหม่ ๆ มากมายที่เพิ่มเข้ามาใน ES5 และการเข้าใจว่าพวกเขาจะช่วยเขียน JavaScript ได้ดี ตัวอย่างเช่นในอาร์เรย์เราอาจไม่จำเป็นต้องไปหาลูปด้วยวิธีที่ตรงไปตรงมาและสะดุดตา
มีการเพิ่มวิธีการเขียนอาร์เรย์ใหม่ใน ES5 ดังนี้:
foreach (JS v1.6)
แผนที่ (JS v1.6)
ตัวกรอง (JS v1.6)
บางคน (JS v1.6)
ทุก (JS v1.6)
indexof (JS v1.6)
LastIndexof (JS v1.6)
ลด (JS v1.8)
Reduceright (JS v1.8)
1. คุณสมบัติวัตถุอาร์เรย์อาร์เรย์ที่ใช้กันทั่วไปใน JS:
ดังที่แสดงในรูปชิ้นส่วนที่ทำเครื่องหมายด้วยวงกลมสีแดงเป็นแอตทริบิวต์ใหม่ที่เพิ่มเข้ามาใน ES5
2. สถานะการสนับสนุนเบราว์เซอร์:
•เช่น: 9+;
•โครเมี่ยม;
• Firefox2+;
• Safari 3+;
•โอเปร่า 9.5+;
3. วิธีการตำแหน่ง
ECMASCRIPT5 กำหนด 2 วิธีตำแหน่งสำหรับอาร์เรย์ indexof (), lastIndexof ();
ทั้งสองวิธีได้รับสองพารามิเตอร์: รายการที่จะพบและดัชนี (ไม่บังคับ) ระบุตำแหน่งของจุดเริ่มต้นการค้นหา
ในหมู่พวกเขาดัชนี () เริ่มมองย้อนกลับจากจุดเริ่มต้นของอาร์เรย์ (ตำแหน่ง 0) ในขณะที่ LastIndexof () เริ่มมองไปข้างหน้าจากจุดสิ้นสุดของอาร์เรย์
ทั้งสองวิธีต้องส่งคืนตำแหน่งของรายการที่จะพบในอาร์เรย์หรือส่งคืน -1 หากไม่พบ
ตัวอย่าง:
หมายเลข var = [1,2,3,4,5,4,3,3,2,1]; Alert (number.indexof (4)); //4Alert(number.lastindexof(4)); //5Alert(number.indexof(4,4)); //5Alert(number.lastindexof(4,4)); // 3
4. วิธีการวนซ้ำ
ECMASCRIPT5 กำหนด 5 วิธีการวนซ้ำสำหรับอาร์เรย์
4.1. ทุกอย่าง ()
คำจำกัดความและการใช้งาน: วิธีการทุก () ใช้เพื่อตรวจสอบว่าองค์ประกอบทั้งหมดของอาร์เรย์เป็นไปตามเงื่อนไขที่ระบุ (จัดทำโดยฟังก์ชั่น) หรือไม่
ทุกวิธี () ใช้ฟังก์ชันที่ระบุเพื่อตรวจจับองค์ประกอบทั้งหมดในอาร์เรย์:
•หากตรวจพบองค์ประกอบในอาร์เรย์ที่ไม่พอใจนิพจน์ทั้งหมดจะกลับมาเป็นเท็จและองค์ประกอบที่เหลือจะไม่ถูกตรวจพบอีกครั้ง
•ส่งคืนจริงถ้าองค์ประกอบทั้งหมดเป็นไปตามเงื่อนไข
หมายเหตุ: ทุก () จะไม่ตรวจจับอาร์เรย์ที่ว่างเปล่า
หมายเหตุ: ทุก () ไม่เปลี่ยนอาร์เรย์ดั้งเดิม
คำอธิบาย: ตรวจพบว่าองค์ประกอบทั้งหมดของอายุอาร์เรย์มากกว่า 18:
Var Ages = [32, 33, 16, 40]; ฟังก์ชั่นการตรวจสอบฟังก์ชั่น (อายุ) {return Age> = 18;} function myfunction () {document.getElementById ("demo"). innerhtml = ages.every (checkadult);}}ผลที่ได้คือ:
เท็จ;
4.2. บาง()
คำจำกัดความและการใช้งาน: วิธีการบางอย่าง () ใช้เพื่อตรวจสอบว่าองค์ประกอบในอาร์เรย์เป็นไปตามเงื่อนไขที่ระบุ (จัดทำโดยฟังก์ชั่น) หรือไม่
เรียกใช้ฟังก์ชั่นที่กำหนดในแต่ละรายการในอาร์เรย์และหากฟังก์ชั่นส่งคืนจริงสำหรับรายการใดรายการหนึ่งมันจะกลับมาจริง
รหัสมีดังนี้:
หมายเลข var = [1,2,3,4,5,4,3,3,2,1]; var someresult = number.mome (ฟังก์ชั่น (รายการ, ดัชนี, อาร์เรย์) {// รายการหมายถึงค่าอาร์เรย์; ดัชนีหมายถึงอาร์เรย์ตัวห้อยอาร์เรย์หมายถึงอาร์เรย์ตัวเอง;ผลที่ได้คือ:
จริง;
4.3. กรอง()
คำจำกัดความและการใช้งาน: เมธอดตัวกรอง () สร้างอาร์เรย์ใหม่และองค์ประกอบในอาร์เรย์ใหม่จะถูกตรวจสอบสำหรับองค์ประกอบทั้งหมดในอาร์เรย์ที่ระบุที่ตรงตามเกณฑ์
เรียกใช้ฟังก์ชั่นที่กำหนดในแต่ละรายการในอาร์เรย์ส่งคืนอาร์เรย์ของรายการที่จะส่งคืนจริง
คำอธิบาย: ในการส่งคืนอาร์เรย์ที่มีค่ามากกว่า 2 รหัสมีดังนี้:
หมายเลข var = [1,2,3,4,5,4,3,3,2,1]; var filterresult = number.filter (ฟังก์ชั่น (รายการ, ดัชนี, อาร์เรย์) {// รายการหมายถึงค่าอาร์เรย์; ดัชนีหมายถึงอาร์เรย์ตัวห้อยอาร์เรย์หมายถึงอาร์เรย์;ผลที่ได้คือ:
[3,4,5,4,3]
4.4. แผนที่()
คำจำกัดความและการใช้งาน: เมธอดแผนที่ () ส่งคืนอาร์เรย์ใหม่และองค์ประกอบในอาร์เรย์คือค่าที่ประมวลผลโดยองค์ประกอบอาร์เรย์ดั้งเดิมหลังจากเรียกฟังก์ชัน
เรียกใช้ฟังก์ชั่นที่กำหนดในแต่ละรายการในอาร์เรย์ส่งคืนอาร์เรย์ที่ประกอบด้วยผลลัพธ์ของการเรียกใช้ฟังก์ชันแต่ละรายการ
คำอธิบาย: คูณแต่ละคำในอาร์เรย์ด้วย 2 และส่งคืนอาร์เรย์ที่ประกอบด้วยผลิตภัณฑ์เหล่านี้ รหัสมีดังนี้:
หมายเลข var = [1,2,3,4,5,4,4,3,2,1]; var mapResult = number.map (ฟังก์ชั่น (รายการ, ดัชนี, อาร์เรย์) {// รายการหมายถึงค่าอาร์เรย์; ดัชนีหมายถึงอาร์เรย์ตัวห้อยอาร์เรย์หมายถึงอาร์เรย์ตัวเอง;ผลที่ได้คือ:
[2,4,6,8,10,8,6,4,2]
4.5. foreach ()
คำจำกัดความและการใช้งาน: เรียกใช้ฟังก์ชั่นที่กำหนดในแต่ละรายการในอาร์เรย์ วิธีนี้ไม่มีค่าส่งคืน
เป็นหลักเช่นเดียวกับการใช้ A for loop เพื่อวนซ้ำผ่านอาร์เรย์ รหัสมีดังนี้:
หมายเลข var = [1,2,3,4]; numbers.foreach (ฟังก์ชั่น (รายการ, ดัชนี, อาร์เรย์) {console.log (รายการ);});ผลที่ได้คือ:
1
2
3
4
5. ลดวิธีการ
Ecmascript5 เพิ่มสองวิธีใหม่เพื่อลดอาร์เรย์: ลด () และ reduceright ();
วิธีการทั้งสองนี้จะวนซ้ำรายการทั้งหมดในอาร์เรย์จากนั้นสร้างค่าที่ส่งคืนสุดท้าย ในหมู่พวกเขาวิธีการลด () เริ่มต้นจากรายการแรกของอาร์เรย์และผ่านมันทีละหนึ่งไปจนถึงที่สุด
REDUCERIGHT () เริ่มต้นจากรายการสุดท้ายของอาร์เรย์และข้ามไปยังรายการแรก ทั้งสองวิธีได้รับสองพารามิเตอร์: ฟังก์ชั่นที่เรียกว่าในแต่ละรายการและ (ไม่บังคับ) เป็นค่าเริ่มต้นสำหรับฐานแคบ
ฟังก์ชั่นที่ส่งผ่านเพื่อลด () และ REDUCERIGHT () ได้รับ 4 พารามิเตอร์: ค่าก่อนหน้าค่าปัจจุบันดัชนีของรายการและวัตถุอาร์เรย์
คำอธิบาย: ใช้วิธีการลด () เพื่อดำเนินการค้นหาผลรวมของค่าทั้งหมดในอาร์เรย์ รหัสมีดังนี้:
ค่า var = [1,2,3,4,5]; var sum = values.reduce (ฟังก์ชัน (ก่อนหน้า, cur, ดัชนี, อาร์เรย์) {return prev+cur;}); Alert (sum);ผลที่ได้คือ:
15
ข้างต้นเป็นความรู้ที่เกี่ยวข้องของวิธีการอาร์เรย์ที่เพิ่มขึ้นใหม่ในมาตรฐาน JavaScript ES5 ที่แนะนำโดยบรรณาธิการ ฉันหวังว่ามันจะเป็นประโยชน์กับคุณ หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับคุณทันเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!