108 of 264 menu

วิธี reduce

เมธอด reduce รวบอาร์เรย์ลงเป็น ค่าเดียว (reduce) ตัวอย่างเช่น การใช้เมธอดนี้ทำให้สามารถหาผลรวมของ องค์ประกอบอาร์เรย์ได้ง่าย (กล่าวคืออาร์เรย์จะถูกรวบ เป็นค่าเดียว - เป็นผลรวมขององค์ประกอบ)

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

ผลลัพธ์ชั่วคราว คือ ตัวแปร ที่จะสะสมค่าที่ เมธอด reduce จะคืนค่า เมื่อ วนผ่านองค์ประกอบทั้งหมดของอาร์เรย์แล้ว ตัวอย่างเช่น สามารถสะสมผลรวมของ องค์ประกอบอาร์เรย์ตามลำดับได้: ใส่องค์ประกอบแรกก่อน ในการวนรอบต่อไปก็จะได้ ผลรวมขององค์ประกอบแรกและองค์ประกอบที่สอง ในการวนรอบต่อไป - ผลรวมขององค์ประกอบแรก ที่สอง และที่สาม และทำเช่นนี้ไปจนกว่าอาร์เรย์จะหมด ฟังก์ชันที่ reduce รับเข้า ต้องคืนค่าใหม่ของผลลัพธ์ชั่วคราว

พารามิเตอร์ที่สองของเมธอด reduce ระบุ ค่าเริ่มต้นของผลลัพธ์ชั่วคราว หากไม่ระบุ ค่าจะเท่ากับองค์ประกอบแรก ของอาร์เรย์ และการประมวลผลองค์ประกอบจะเริ่ม จากองค์ประกอบที่สอง

ไวยากรณ์

อาร์เรย์.reduce(function(ผลลัพธ์ชั่วคราว, องค์ประกอบ, ดัชนี, อาร์เรย์) { return ผลลัพธ์ชั่วคราวใหม่; }, ค่าเริ่มต้น);

ตัวอย่าง

หาผลรวมขององค์ประกอบอาร์เรย์:

let arr = [1, 2, 3, 4, 5, 6]; let res = arr.reduce(function(sum, elem) { return sum + elem; }, 0); console.log(res);

ผลลัพธ์การทำงานของโค้ด:

21

ตัวอย่าง

มาหาผลรวมของ จำนวนบวกทั้งหมดในอาร์เรย์กัน:

let arr = [1, -2, -3, 4, 5, -6]; let res = arr.reduce(function(sum, elem) { if (elem >= 0) { return sum + elem; } else { return sum; } }, 0); console.log(res);

ผลลัพธ์การทำงานของโค้ด:

10

ดูเพิ่มเติม

  • เมธอด reduceRight,
    ที่ทำงานคล้ายกัน
  • เมธอด filter,
    ที่ช่วยกรององค์ประกอบอาร์เรย์
  • เมธอด map และ forEach,
    ที่ช่วยใช้ฟังก์ชันกับแต่ละองค์ประกอบของอาร์เรย์
  • เมธอด some และ every,
    ที่ทำการตรวจสอบอาร์เรย์
ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ