คำถามสัมภาษณ์ที่มักจะปรากฏในการทดสอบเป็นลายลักษณ์อักษร อาร์เรย์ในจาวาสคริปต์ค่อนข้างแตกต่างจากภาษาอื่น ๆ เพื่ออำนวยความสะดวกในการเรียนรู้วิธีการอาร์เรย์ตัวแก้ไขได้รวบรวมวิธีการทำงานสำหรับอาร์เรย์สำหรับคุณด้านล่าง มาดูกันเถอะ
การสร้างอาร์เรย์
มีสองวิธีในการสร้างอาร์เรย์ใน JavaScript อย่างแรกคือการใช้ตัวสร้างอาร์เรย์:
var arr1 = new Array (); // สร้างอาร์เรย์ที่ว่างเปล่า var arr2 = อาร์เรย์ใหม่ (20); // สร้างอาร์เรย์ที่มี 20 รายการ var arr3 = อาร์เรย์ใหม่ ("ลิลลี่", "ลูซี่", "ทอม"); // สร้างอาร์เรย์ที่มี 3 สตริงวิธีพื้นฐานที่สองในการสร้างอาร์เรย์คือการใช้สัญกรณ์ตัวอักษรอาร์เรย์:
var arr4 = []; // สร้างอาร์เรย์ที่ว่างเปล่า var arr5 = [20]; // สร้างอาร์เรย์ที่มี 1 รายการ var arr6 = ["Lily", "Lucy", "Tom"]; // สร้างอาร์เรย์ที่มี 3 สตริง
เมื่ออ่านและตั้งค่าค่าของอาร์เรย์ให้ใช้วงเล็บเหลี่ยมและจัดทำดัชนีตัวเลขที่ใช้ 0 ของค่าที่สอดคล้องกัน:
var arr6 = ["Lily", "Lucy", "Tom"]; // สร้างการแจ้งเตือนอาร์เรย์ (arr6 [0]); // lilyarr6 [1] = "Mary"; // แก้ไขรายการที่สองเป็น Maryarr6 [3] = "ฌอน"; // เพิ่มรายการที่สี่ให้กับฌอน
คุณสมบัติความยาวของอาร์เรย์ใน JavaScript สามารถแก้ไขได้ดูตัวอย่างต่อไปนี้:
var arr = ["Lily", "Lucy", "Tom"]; // สร้างอาร์เรย์ที่มี 3 สตริง arr [arr.length] = "ฌอน"; // เพิ่ม "ฌอน" arr.length = arr.length-1 ที่ตัวห้อยของ 3 (นั่นคือจุดสิ้นสุดของอาร์เรย์)
หากคุณต้องการตรวจสอบว่าวัตถุเป็นวัตถุอาร์เรย์หรือไม่ก่อนที่ ECMAScript 5 เราสามารถใช้อินสแตนซ์ของอาร์เรย์เพื่อตัดสินได้หรือไม่ แต่ปัญหาของตัวดำเนินการอินสแตนซ์ของตัวดำเนินการคือมันถือว่ามีสภาพแวดล้อมการดำเนินการทั่วโลกเพียงครั้งเดียว หากหน้าเว็บมีหลายเฟรมเวิร์กมีสภาพแวดล้อมการดำเนินการทั่วโลกที่แตกต่างกันมากกว่าสองสภาพที่แตกต่างกันดังนั้นจึงมีตัวสร้างอาร์เรย์มากกว่าสองเวอร์ชันที่แตกต่างกัน หากคุณผ่านอาร์เรย์จากเฟรมเวิร์กหนึ่งไปยังอีกเฟรมเวิร์กอาเรย์ที่ผ่านมามีตัวสร้างที่แตกต่างจากอาร์เรย์ที่สร้างขึ้นโดยธรรมชาติในกรอบที่สอง
Ecmascript 5 ได้เพิ่มเมธอด array.isarray () วัตถุประสงค์ของวิธีนี้คือการพิจารณาว่าค่าเป็นอาร์เรย์โดยไม่คำนึงถึงสภาพแวดล้อมการดำเนินการทั่วโลกที่สร้างขึ้น
วิธีอาร์เรย์
เริ่มต้นด้วยการแนะนำวิธีการอาร์เรย์ วิธีการอาร์เรย์รวมถึงวิธีการต้นแบบอาร์เรย์และวิธีการที่สืบทอดมาจากวัตถุวัตถุ ที่นี่เราจะแนะนำวิธีต้นแบบอาร์เรย์เท่านั้น วิธีต้นแบบอาร์เรย์ส่วนใหญ่รวมถึงสิ่งต่อไปนี้:
เข้าร่วม()
push () และ pop ()
Shift () และ Unshift ()
เรียงลำดับ()
ย้อนกลับ()
concat ()
ชิ้น()
ประกบ ()
indexof () และ lastIndexof () (เพิ่มใหม่ใน ES5)
foreach () (เพิ่มใหม่ใน ES5)
MAP () (เพิ่มใหม่ใน ES5)
ตัวกรอง () (เพิ่มใหม่ใน ES5)
ทุก () (เพิ่มใหม่ใน ES5)
บาง () (เพิ่มใหม่ใน ES5)
ลด () และ reduceright () (เพิ่มใหม่ใน ES5)
การสนับสนุนเบราว์เซอร์ใหม่สำหรับ ES5:
โอเปร่า 11+
Firefox 3.6+
Safari 5+
Chrome 8+
Internet Explorer 9+
สำหรับรุ่นเบราว์เซอร์ที่รองรับสามารถนำไปใช้ได้ผ่านส่วนขยายต้นแบบอาร์เรย์ ต่อไปนี้เป็นการแนะนำรายละเอียดเกี่ยวกับฟังก์ชั่นพื้นฐานของแต่ละวิธี
1. เข้าร่วม ()
เข้าร่วม (ตัวคั่น): องค์ประกอบกลุ่มของอาร์เรย์ลงในสตริงโดยมีตัวคั่นเป็นตัวคั่น หากละเว้นให้ใช้เครื่องหมายจุลภาคเป็นตัวคั่นตามค่าเริ่มต้น วิธีนี้ได้รับเพียงหนึ่งพารามิเตอร์: นั่นคือตัวคั่น
var arr = [1,2,3]; console.log (arr.join ()); // 1,2,3console.log (arr.oin ("-")); // 1-2-3console.log (arr); // [1, 2, 3] (อาร์เรย์ดั้งเดิมยังคงไม่เปลี่ยนแปลง)วิธีการเข้าร่วม () สามารถใช้เพื่อทำซ้ำสตริง เพียงผ่านสตริงและจำนวนการทำซ้ำเพื่อส่งคืนสตริงซ้ำ ฟังก์ชั่นมีดังนี้:
ฟังก์ชั่น repeatstring (str, n) {ส่งคืนอาร์เรย์ใหม่ (n + 1) .join (str);} console.log (repeatstring ("abc", 3)); // abcabcabcconsole.log (repeatstring ("hi", 5)); // hihihihihi2. push () และ pop ()
push (): คุณสามารถรับพารามิเตอร์จำนวนใดก็ได้เพิ่มทีละหนึ่งไปยังจุดสิ้นสุดของอาร์เรย์และส่งคืนความยาวของอาร์เรย์ที่แก้ไข
POP (): ลบรายการสุดท้ายที่ส่วนท้ายของอาร์เรย์ลดค่าความยาวของอาร์เรย์แล้วส่งคืนรายการที่ถูกลบ
var arr = ["Lily", "Lucy", "Tom"]; var count = arr.push ("Jack", "Sean"); console.log (นับ); // 5console.log (arr); // ["Lily", "Lucy", "Tom", "Jack", "Sean"] var item = arr.pop (); console.log (รายการ); // seanconsole.log (arr); // ["Lily", "Lucy", "Tom", "Jack"]3. shift () และ unshift ()
Shift (): ลบรายการแรกของอาร์เรย์ดั้งเดิมและส่งคืนค่าขององค์ประกอบที่ถูกลบ หากอาร์เรย์ว่างเปล่าให้ส่งคืนที่ไม่ได้กำหนด
Unshift: เพิ่มอาร์กิวเมนต์ลงในจุดเริ่มต้นของอาร์เรย์ดั้งเดิมและส่งคืนความยาวของอาร์เรย์
ชุดของวิธีการนี้สอดคล้องกับวิธีการ push () และ pop () ด้านบน หนึ่งคือจุดเริ่มต้นของอาร์เรย์ตัวถูกดำเนินการและอีกอันคือจุดสิ้นสุดของอาร์เรย์ตัวถูกดำเนินการ
var arr = ["Lily", "Lucy", "Tom"]; var count = arr.unshift ("Jack", "Sean"); console.log (นับ); // 5console.log (arr); // ["Jack", "Sean", "Lily", "Lucy", "Tom"] var item = arr.shift (); console.log (รายการ); // jackconsole.log (arr); // ["ฌอน", "ลิลลี่", "ลูซี่", "ทอม"]4. เรียงลำดับ ()
Sort (): จัดเรียงรายการอาร์เรย์ตามลำดับจากน้อยไปหามาก - นั่นคือค่าที่เล็กที่สุดอยู่ที่ด้านหน้าและค่าที่ใหญ่ที่สุดคือสุดท้าย
เมื่อเรียงลำดับวิธีการเรียงลำดับ () เรียกใช้วิธีการแปลง TOSTRING () สำหรับแต่ละรายการอาร์เรย์จากนั้นเปรียบเทียบสตริงผลลัพธ์เพื่อกำหนดวิธีการเรียงลำดับ แม้ว่าแต่ละรายการในอาร์เรย์จะเป็นค่าตัวเลขวิธีการเรียงลำดับ () จะเปรียบเทียบสตริงดังนั้นสถานการณ์ต่อไปนี้จะเกิดขึ้น:
var arr1 = ["a", "d", "c", "b"]; console.log (arr1.sort ()); // ["a", "b", "c", "d"] arr2 = [13, 24, 51, 3]; console.log (arr2.sort ()); // [13, 24, 3, 51] (เปลี่ยนอาร์เรย์เมตา)
ในการแก้ปัญหาข้างต้นวิธีการเรียงลำดับ () สามารถรับฟังก์ชั่นการเปรียบเทียบเป็นพารามิเตอร์เพื่อให้เราระบุค่าที่อยู่ข้างหน้าค่าใด ฟังก์ชั่นการเปรียบเทียบได้รับพารามิเตอร์สองตัวจะส่งคืนหมายเลขลบหากพารามิเตอร์แรกควรเป็นก่อนที่สองจะส่งคืน 0 หากพารามิเตอร์ทั้งสองเท่ากันและส่งกลับหมายเลขบวกหากพารามิเตอร์แรกควรเป็นหลังจากที่สอง นี่คือฟังก์ชั่นการเปรียบเทียบอย่างง่าย:
ฟังก์ชั่นเปรียบเทียบ (ค่า 1, value2) {ถ้า (ค่า 1 <ค่า 2) {return -1;} else ถ้า (value1> value2) {return 1;} else {return 0;}} arr2 = [13, 24, 51, 3]; console.log (arr2.sort (เปรียบเทียบ)); // [3, 13, 24, 51]หากคุณต้องการสร้างผลลัพธ์การเรียงลำดับจากมากไปน้อยผ่านฟังก์ชั่นการเปรียบเทียบเพียงแค่แลกเปลี่ยนค่าที่ส่งคืนโดยฟังก์ชั่นการเปรียบเทียบ:
ฟังก์ชั่นเปรียบเทียบ (ค่า 1, value2) {ถ้า (ค่า 1 <ค่า 2) {return 1;} else ถ้า (value1> value2) {return -1;} else {return 0;}} arr2 = [13, 24, 51, 3]; console.log (arr2.sort (เปรียบเทียบ)); // [51, 24, 13, 3]5. ย้อนกลับ ()
reverse (): กลับลำดับของรายการอาร์เรย์
var arr = [13, 24, 51, 3]; console.log (arr.reverse ()); // [3, 51, 24, 13] console.log (arr); // [3, 51, 24, 13] (เปลี่ยนอาร์เรย์ดั้งเดิม)
6. concat ()
concat (): เพิ่มอาร์กิวเมนต์ลงในอาร์เรย์ดั้งเดิม วิธีนี้จะสร้างสำเนาของอาร์เรย์ปัจจุบันก่อนจากนั้นเพิ่มพารามิเตอร์ที่ได้รับในตอนท้ายของสำเนาและในที่สุดก็ส่งคืนอาร์เรย์ที่สร้างขึ้นใหม่ โดยไม่ต้องผ่านพารามิเตอร์ไปยังเมธอด concat () มันเพียงแค่คัดลอกอาร์เรย์ปัจจุบันและส่งคืนสำเนา
var arr = [1,3,5,7]; var arrcopy = arr.concat (9, [11,13]); console.log (arrcopy); // [1, 3, 5, 7, 9, 11, 13] console.log (arr); // [1, 3, 5, 7] (อาร์เรย์ดั้งเดิมยังไม่ได้รับการแก้ไข)
จากผลการทดสอบข้างต้นเราสามารถค้นหาได้ว่า: หากสิ่งที่ส่งผ่านไม่ใช่อาร์เรย์นั้นพารามิเตอร์จะถูกเพิ่มลงในอาร์เรย์โดยตรง หากสิ่งที่ส่งผ่านคืออาร์เรย์รายการในอาร์เรย์จะถูกเพิ่มลงในอาร์เรย์ แต่ถ้าสิ่งที่ผ่านเข้ามาคืออาร์เรย์สองมิติ?
var arrcopy2 = arr.concat ([9, [11,13]]); console.log (arrcopy2); // [1, 3, 5, 7, 9, อาร์เรย์ [2]] console.log (arrcopy2 [5]); // [11, 13]
ในรหัสข้างต้นรายการที่ห้าของอาร์เรย์ Arrcopy2 เป็นอาร์เรย์ที่มีสองรายการ กล่าวคือวิธีการ concat สามารถเพิ่มแต่ละรายการที่ส่งผ่านเข้าไปในอาร์เรย์ไปยังอาร์เรย์เท่านั้น หากบางรายการที่ส่งผ่านไปยังอาร์เรย์เป็นอาร์เรย์รายการอาร์เรย์นี้จะถูกเพิ่มลงใน arrcopy2 เป็นรายการ
7. Slice ()
Slice (): ส่งคืนอาร์เรย์ใหม่ที่ประกอบด้วยรายการจากตัวห้อยเริ่มต้นที่ระบุไปยังตัวห้อยปลายในอาร์เรย์ดั้งเดิม วิธี Slice () สามารถยอมรับพารามิเตอร์หนึ่งหรือสองตัวนั่นคือตำแหน่งเริ่มต้นและสิ้นสุดของรายการที่จะส่งคืน ในกรณีของพารามิเตอร์เดียวเมธอด slice () ส่งคืนรายการทั้งหมดเริ่มต้นจากตำแหน่งที่ระบุของพารามิเตอร์ไปยังจุดสิ้นสุดของอาร์เรย์ปัจจุบัน หากมีสองพารามิเตอร์วิธีการส่งคืนรายการระหว่างตำแหน่งเริ่มต้นและสิ้นสุด - แต่ไม่รวมรายการที่ตำแหน่งสิ้นสุด
var arr = [1,3,5,7,9,11]; var arrcopy = arr.slice (1); var arrcopy2 = arr.slice (1,4); var arrcopy3 = arr.slice (1, -2); var arrcopy4 = arr.slice (-4, -1); // [1, 3, 5, 7, 9, 11] (อาร์เรย์ดั้งเดิมไม่เปลี่ยนแปลง) console.log (arrcopy); // [3, 5, 7, 9, 11] console.log (arrcopy2); // [3, 5, 7] console.log (arrcopy3); // [3, 5, 7, 11] console.log (arrcopy2); // [3, 5, 7] console.log (arrcopy3); // [3, 5, 7] console.log (arrcopy4); // [5, 7, 9]
Arrcopy ตั้งค่าพารามิเตอร์เดียวเท่านั้นนั่นคือตัวห้อยเริ่มต้นคือ 1 ดังนั้นอาร์เรย์ที่ส่งคืนคือตัวห้อย 1 (รวมถึงตัวห้อย 1) และเริ่มต้นที่สิ้นสุดของอาร์เรย์
arrcopy2 ตั้งค่าพารามิเตอร์สองตัวโดยส่งคืน subarray ของตัวห้อยเริ่มต้น (รวมถึง 1) และเริ่มต้นไปยังตัวห้อยสิ้นสุด (ไม่รวม 4)
arrcopy3 ตั้งค่าพารามิเตอร์สองพารามิเตอร์สิ้นสุดตัวห้อยเป็นจำนวนลบ เมื่อจำนวนลบเกิดขึ้นให้เพิ่มจำนวนลบลงในค่าของความยาวอาร์เรย์ (6) เพื่อแทนที่จำนวนที่ตำแหน่งนั้นดังนั้นจึงเป็น subarray เริ่มต้นจาก 1 ถึง 4 (ไม่รวม)
พารามิเตอร์ทั้งสองใน arrcopy4 เป็นจำนวนลบดังนั้นจึงถูกเพิ่มเข้าไปในความยาวอาร์เรย์ 6 และแปลงเป็นจำนวนบวกดังนั้นจึงเทียบเท่ากับชิ้น (2,5)
8. Splice ()
Splice (): วิธีอาร์เรย์ที่ทรงพลังมากมีการใช้งานมากมายซึ่งสามารถใช้การลบแทรกและทดแทนได้
ลบ: คุณสามารถลบจำนวนรายการใด ๆ เพียงแค่ระบุพารามิเตอร์ 2 ตัว: ตำแหน่งของรายการแรกที่จะลบและจำนวนรายการที่จะลบ ตัวอย่างเช่น Splice (0,2) จะลบสองรายการแรกในอาร์เรย์
แทรก: คุณสามารถแทรกจำนวนรายการใด ๆ ลงในตำแหน่งที่ระบุเพียงแค่ให้ 3 พารามิเตอร์: ตำแหน่งเริ่ม, 0 (จำนวนรายการที่จะลบ) และรายการที่จะแทรก ตัวอย่างเช่น Splice (2,0,4,6) จะแทรก 4 และ 6 จากตำแหน่งที่ 2 ของอาร์เรย์ปัจจุบัน
แทนที่: คุณสามารถแทรกจำนวนรายการใด ๆ ลงในตำแหน่งที่ระบุและลบจำนวนรายการใด ๆ ในเวลาเดียวกัน คุณจะต้องระบุพารามิเตอร์ 3 ตัวเท่านั้น: ตำแหน่งเริ่มต้นจำนวนรายการที่จะถูกลบและจำนวนรายการใด ๆ ที่จะแทรก จำนวนรายการแทรกไม่จำเป็นต้องเท่ากับจำนวนรายการที่ถูกลบ ตัวอย่างเช่น Splice (2,1,4,6) ลบรายการที่ตำแหน่งอาร์เรย์ปัจจุบัน 2 จากนั้นแทรก 4 และ 6 จากตำแหน่ง 2
เมธอด Splice () จะส่งคืนอาร์เรย์ที่มีรายการที่ถูกลบออกจากอาร์เรย์ดั้งเดิมเสมอและหากไม่มีรายการถูกลบอาร์เรย์ที่ว่างเปล่าจะถูกส่งคืน
var arr = [1,3,5,7,9,11]; var arrremoved = arr.splice (0,2); console.log (arr); // [5, 7, 9, 11] console.log (arrremoved); // [1, 3] var arrremoved2 = arr.splice (2,0,4,6); console.log (arr); // [5, 7, 4, 6, 9, 11] console.log (arrremoved2); // [] var arrremoved3 = arr.splice (1,1,2,4); console.log (arr); // [5, 2, 4, 4, 6, 9, 11] console.log (arrremoved3); // [7]
9. ดัชนี () และ LastIndexof ()
indexof (): รับพารามิเตอร์สองตัว: รายการที่จะพบและดัชนี (ไม่บังคับ) ระบุตำแหน่งของจุดเริ่มต้นการค้นหา โดยมองย้อนกลับไปจากจุดเริ่มต้นของอาร์เรย์ (ตำแหน่ง 0)
LastIndexof: รับพารามิเตอร์สองตัว: รายการที่จะพบและดัชนี (ไม่บังคับ) ระบุตำแหน่งของจุดเริ่มต้นการค้นหา ที่ไหนเริ่มมองไปข้างหน้าจากจุดสิ้นสุดของอาร์เรย์
ทั้งสองวิธีส่งคืนตำแหน่งของรายการที่จะพบในอาร์เรย์หรือส่งคืน1หากไม่พบ เมื่อเปรียบเทียบพารามิเตอร์แรกกับแต่ละรายการในอาร์เรย์จะใช้ตัวดำเนินการคอนเวอร์เจนซ์
var arr = [1,3,5,7,7,5,3,1]; console.log (arr.indexof (5)); //2console.log(arr.lastindexof(5)); //5console.log(arr.indexof(5,2)); //2console.log(arr.lastindexof(5,4)); //2console.log(arr.indexof("5 ")); //-110. foreach ()
foreach (): ข้ามอาร์เรย์และเรียกใช้ฟังก์ชั่นที่กำหนดในแต่ละรายการในอาร์เรย์ วิธีนี้ไม่มีค่าส่งคืน พารามิเตอร์เป็นฟังก์ชันทั้งหมดและมีพารามิเตอร์ที่ส่งผ่านโดยค่าเริ่มต้น พารามิเตอร์คือ: เนื้อหาอาร์เรย์ที่ผ่านการสำรวจ; ดัชนีอาร์เรย์ที่สอดคล้องกันอาร์เรย์เอง
var arr = [1, 2, 3, 4, 5]; arr.foreach (ฟังก์ชั่น (x, ดัชนี, a) {console.log (x + '|' + ดัชนี + '|' + (a === arr));}); // เอาต์พุตคือ: // 1 | 0 | true // 2 | 1 |11. แผนที่ ()
MAP (): หมายถึง "แผนที่" ซึ่งเรียกใช้ฟังก์ชั่นที่กำหนดในแต่ละรายการในอาร์เรย์และส่งคืนอาร์เรย์ที่ประกอบด้วยผลลัพธ์ของการโทรแต่ละฟังก์ชัน
รหัสต่อไปนี้ใช้เมธอดแผนที่เพื่อสี่เหลี่ยมแต่ละหมายเลขในอาร์เรย์
var arr = [1, 2, 3, 4, 5]; var arr2 = arr.map (ฟังก์ชั่น (รายการ) {return item*item;}); console.log (arr2); // [1, 4, 9, 16, 25]12. ตัวกรอง ()
ตัวกรอง (): ฟังก์ชั่น "ตัวกรอง" แต่ละรายการในอาร์เรย์จะเรียกใช้ฟังก์ชั่นที่กำหนดและส่งคืนอาร์เรย์ที่ตรงกับเงื่อนไขการกรอง
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; var arr2 = arr.filter (ฟังก์ชั่น (x, ดัชนี) {return index % 3 === 0 || x> = 8;}); console.log (arr2); // [1, 4, 7, 8, 9, 10]13. ทุกอย่าง ()
ทุก (): กำหนดว่าแต่ละรายการในอาร์เรย์ตรงกับเงื่อนไขหรือไม่ เฉพาะเมื่อรายการทั้งหมดตรงตามเงื่อนไขจะถูกส่งคืน
var arr = [1, 2, 3, 4, 5]; var arr2 = arr.every (ฟังก์ชั่น (x) {return x <10;}); console.log (arr2); // truevar arr3 = arr.every (ฟังก์ชั่น (x) {return x <3;}); console.log (arr3); // เท็จ14. บางคน ()
บาง (): กำหนดว่ามีรายการในอาร์เรย์ที่ตรงตามเงื่อนไขหรือไม่ ตราบใดที่หนึ่งในนั้นเป็นไปตามเงื่อนไขมันจะกลับมาเป็นจริง
var arr = [1, 2, 3, 4, 5]; var arr2 = arr.some (ฟังก์ชั่น (x) {return x <3;}); console.log (arr2); // TrueVar arr3 = arr.some (ฟังก์ชั่น (x) {return x <1;}); console.log (arr3); // เท็จ15. ลด () และลดระดับ ()
ทั้งสองวิธีใช้การวนซ้ำในทุกรายการของอาร์เรย์แล้วสร้างค่าที่ส่งคืนสุดท้าย วิธีการลด () เริ่มต้นจากรายการแรกของอาร์เรย์และผ่านไปทีละหนึ่งไปจนถึงที่สุด REDUCERIGHT () เริ่มต้นจากรายการสุดท้ายของอาร์เรย์และข้ามไปยังรายการแรก
ทั้งสองวิธีได้รับสองพารามิเตอร์: ฟังก์ชั่นที่เรียกว่าในแต่ละรายการและ (ไม่บังคับ) เป็นค่าเริ่มต้นของฐานผสาน
ฟังก์ชั่นที่ส่งผ่านเพื่อลด () และ REDUCERIGHT () ได้รับ 4 พารามิเตอร์: ค่าก่อนหน้าค่าปัจจุบันดัชนีของรายการและวัตถุอาร์เรย์ ค่าใด ๆ ที่ส่งคืนโดยฟังก์ชั่นนี้จะถูกส่งผ่านไปยังรายการถัดไปโดยอัตโนมัติเป็นพารามิเตอร์แรก การทำซ้ำครั้งแรกเกิดขึ้นในเทอมที่สองของอาร์เรย์ดังนั้นพารามิเตอร์แรกคือเทอมแรกของอาร์เรย์และพารามิเตอร์ที่สองเป็นเทอมที่สองของอาร์เรย์
รหัสต่อไปนี้ใช้ลด () เพื่อใช้ผลรวมของอาร์เรย์และค่าเริ่มต้นของ 10 จะถูกเพิ่มลงในอาร์เรย์ที่จุดเริ่มต้น
ค่า var = [1,2,3,4,5]; var sum = values.reduceright (ฟังก์ชั่น (ก่อนหน้า, cur, ดัชนี, อาร์เรย์) {return prev + cur;}, 10); console.log (ผลรวม); // 25ด้านบนเป็นคอลเลกชันที่สมบูรณ์ของวิธีการอาร์เรย์ JavaScript ที่แนะนำโดยตัวแก้ไข (แนะนำ) ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับทุกคนในเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!