JavaScript: การสร้างช่วงของตัวเลข

ด้วยสามข้อโต้แย้ง; เริ่มต้นสิ้นสุดและขั้นตอน

ภาพโดย Pexels จาก Pixabay

สำหรับอัลกอริทึมของวันนี้เราจะเขียนฟังก์ชันที่เรียกrangeว่ารับจำนวนเต็มสามตัวเป็นอาร์กิวเมนต์ start, endและstep. ฟังก์ชันนี้จะส่งคืนรายการของตัวเลขทั้งหมดจากอาร์กิวเมนต์แรกไปยังอาร์กิวเมนต์ที่สองโดยการส่งออกในอาร์เรย์ด้วยจำนวนsteps ที่กำหนด คำถามที่คล้ายกันนี้สามารถพบได้ในหนังสือEloquent Javascript (พิมพ์ครั้งที่ 3 บทที่ 4 โครงสร้างข้อมูล: ออบเจ็กต์และอาร์เรย์)

นี่คือตัวอย่างบางส่วน:

Example 1:
Input: (1, 7)
Output: [1, 2, 3, 4, 5, 6, 7]
Example 2:
Input: (1, 7, 2)
Output: [1, 3, 5, 7]
Example 3:
Input: (7, 1, -2)
Output: [7, 5, 3, 1]

  1. ตั้งค่าอาร์กิวเมนต์ที่สาม stepเป็นตัวเลือก ใช้ตัวดำเนินการ ternary เพื่อตรวจสอบว่าstartน้อยกว่าendหรือไม่ หากเป็นเช่นนั้นstepค่าดีฟอลต์1คือหรือระบุstepค่าลบของ-1( start < end ? 1 : -1)
  2. ประกาศตัวแปรของอาร์เรย์ว่างเพื่อจัดเก็บตัวเลขทั้งหมดในช่วง
  3. ใช้สองห่วงแยกกัน หนึ่งสำหรับstepค่าบวกและอีกค่าหนึ่งสำหรับstepค่าลบ
  4. ตั้งค่าเริ่มต้นของลูปเป็นstartและรันจนกว่าจะถึงendโดยการนับขึ้นหรือลงขึ้นอยู่กับstepค่า ใช้<=ตัวดำเนินการเมื่อนับขึ้นและใช้>=ตัวดำเนินการเมื่อนับถอยหลังเพื่อตรวจสอบว่าการวนซ้ำเสร็จสิ้นหรือไม่
  5. ผลักตัวเลขทั้งหมดลงในอาร์เรย์จากstartถึงendโดยเพิ่มทีละของstep.
  6. ส่งคืนอาร์เรย์หลังจากที่คุณสร้างช่วง

rangeฟังก์ชันของเราใช้อาร์กิวเมนต์ที่สามซึ่งเป็นทางเลือก step. หากstepไม่ได้กำหนดไว้และstartค่าน้อยกว่าendค่าที่เรานับขึ้นจากstartการendโดยการเพิ่มค่าของโดยstep 1ถ้าstepไม่ได้กำหนดและstartมูลค่าสูงกว่าendมูลค่าที่เรานับถอยหลังจากstartไปendโดยการเพิ่มค่าของโดยstep -1โปรดทราบว่าendค่านี้รวมอยู่ในช่วง

ขอบคุณที่อ่าน! หากคุณพบว่าอัลกอริทึมนี้มีประโยชน์โปรดอ่านบทความอื่น ๆ ของฉันเกี่ยวกับอัลกอริทึม JavaScript:

JavaScript: สามวิธีในการย้อนกลับ Array JavaScript: Chessboard Program Sort Array By Parity Problem Remove Adjacent Duplicates Problem Subtract Product and Sum Problem Unique Number of Occurrences Problem

Suggested posts

การค้นหาข้อมูลเกี่ยวกับชื่อโดเมน

ตัดตอนมาจาก Small, Sharp Software Tools โดย Brian P. Hogan

การค้นหาข้อมูลเกี่ยวกับชื่อโดเมน

เมื่อคุณส่งคำขอไปที่ facebook.com คอมพิวเตอร์ของคุณจะค้นหาชื่อโดเมนเพื่อแปลชื่อโดเมนนั้นเป็นที่อยู่ IP เพื่อให้คอมพิวเตอร์ของคุณสามารถเชื่อมต่อได้

เคล็ดลับสำหรับการเปลี่ยนไปสู่ความปลอดภัยทางไซเบอร์โดยไม่มีพื้นฐานทางเทคนิค

เคล็ดลับสำหรับการเปลี่ยนไปสู่ความปลอดภัยทางไซเบอร์โดยไม่มีพื้นฐานทางเทคนิค

ในปี 2022 ฉันเปลี่ยนจากบทบาทที่ไม่ใช่ด้านเทคนิคมาเป็นความปลอดภัยทางไซเบอร์ ฉันได้รับปริญญาใบแรกในภาษาเยอรมัน ฉันรู้ว่าคุณตกใจและสงสัยว่าฉันสามารถเปลี่ยนแปลงได้สำเร็จได้อย่างไร มันเพิ่งเกิดขึ้น

Related posts

สิ่งที่คุณสามารถทำได้ในช่วงเวลาแห่งการรอคอย (รองานแรกของคุณในด้านเทคโนโลยี)

สิ่งที่คุณสามารถทำได้ในช่วงเวลาแห่งการรอคอย (รองานแรกของคุณในด้านเทคโนโลยี)

การเปลี่ยนอาชีพใหม่อาจเป็นเรื่องที่ท้าทายอย่างยิ่งหากคุณพยายามทำคนเดียว สิ่งสำคัญคือต้องหาพันธมิตรที่มีความรับผิดชอบซึ่งอยู่ในระดับการเรียนรู้เดียวกันกับคุณ ซึ่งมีเป้าหมาย ความดื้อรั้น และแรงผลักดันที่คล้ายคลึงกัน

ศิลปะเคยไม่ฝักใฝ่ฝ่ายใดหรือไม่?

ศิลปะเคยไม่ฝักใฝ่ฝ่ายใดหรือไม่?

เมื่อวานนี้ เราปิดการแข่งขัน Eurovision Song Contest ปีนี้ด้วยตอนจบที่สดใสและวุ่นวาย โดย Loreen นักร้องชาวสวีเดนคว้าถ้วยรางวัลกลับบ้าน กลายเป็นผู้หญิงคนแรกที่ชนะสองครั้งและนำมงกุฎกลับมายังสวีเดน 50 ปีหลังจาก ABBA ชนะการแข่งขัน กับ “วอเตอร์ลู” พวกเขากลายเป็นหนึ่งในการแสดงที่ยิ่งใหญ่ที่สุดในวงการเพลงป๊อป

ไม่มีรหัสผ่านอีกต่อไป — รหัสผ่านจะมาแทนที่รหัสผ่านของคุณได้อย่างไร

ไม่มีรหัสผ่านอีกต่อไป — รหัสผ่านจะมาแทนที่รหัสผ่านของคุณได้อย่างไร

เพื่อหลีกเลี่ยงความกำกวม เราจะใช้คำศัพท์ต่อไปนี้ ผู้รับรองความถูกต้อง; โทรศัพท์มือถือที่ใช้ในการเข้าสู่ระบบเว็บไซต์; เว็บไซต์หรือแอปพลิเคชันที่ผู้ใช้ใช้เพื่อส่งคำขอเข้าสู่ระบบ ผู้ขายที่ให้บริการเช่น

เงินทุนกำจัดคาร์บอนในปีงบประมาณ 24

รายละเอียดคำขอจัดสรรของ Carbon180 ข้ามเส้นทาง

เงินทุนกำจัดคาร์บอนในปีงบประมาณ 24

โดย Alyson Lee ที่ปรึกษาด้านการจัดการภาครัฐ กระบวนการจัดสรรประจำปีของรัฐบาลกลางเป็นหัวใจสำคัญของความพยายามของเราในการให้ทุนสนับสนุนการกำจัดก๊าซคาร์บอนไดออกไซด์ (CDR) ในแต่ละปี Carbon180 จะส่งคำขอไปยังสำนักงานรัฐสภาหลายแห่งเพื่อช่วยชี้แนะว่าเงินดอลลาร์ในปีหน้าจะไหลไปที่ใด