หลายครั้งในการเขียนฟังก์ชันต่างๆ เราอาจต้องการสร้างช่วงเพื่อทำงานกับข้อมูลบางอย่าง ช่วงแสดงถึงข้อมูลในอาร์เรย์หรือวัตถุที่มีค่าเริ่มต้นและสิ้นสุด
มีภาษาจำนวนมากที่สร้างเมธอดในการสร้างช่วง เช่น to_a
ใน Ruby:
('a'..'e').to_a => ["a", "b", "c", "d", "e"]
JavaScript ไม่มีวิธีการเฉพาะในตัวสำหรับสิ่งนี้ แต่มีหลายวิธีที่เราสามารถสร้างช่วงได้ เราจะแสดงให้คุณเห็นสามข้อ
_.range() – โลแดช
หากเราต้องการสร้างช่วงของตัวเลขและต้องการให้เร็วที่สุด เราสามารถใช้ Lodash _.range()
วิธีการใช้งาน
เมธอดนี้ส่งคืนอาร์เรย์และรับอาร์กิวเมนต์สามตัว:วิธีแรกสำหรับ เริ่มต้น ของช่วง วินาทีสำหรับ สิ้นสุด ของช่วง (สูงสุด) และที่สามสำหรับ ขั้นตอน หรือค่าที่เพิ่มขึ้น/ลดลงโดย
_.range(-2); // => [0, -1] _.range(1, 3); // => [1, 2] _.range(1, 10, 4); // => [1, 5, 9]
โปรดทราบว่าหากมีเพียงหนึ่งอาร์กิวเมนต์ จะสร้างช่วงจนถึงจำนวนที่ระบุ นอกจากนี้ อย่าลืมว่า Lodash เป็นไลบรารี JavaScript ที่เราจำเป็นต้องติดตั้งแยกต่างหาก!
สร้างเอง ช่วง() ฟังก์ชัน
หากเราต้องการประหยัดค่าใช้จ่าย เราสามารถสร้างฟังก์ชันช่วงตัวเลขของเราเองได้ ปรากฎว่าการสร้างช่วงของเราเองนั้นค่อนข้างง่าย
function range(start, end, step = 1){ if(start === end) return [start]; const range = []; for(let i = start; i <= end; i += step){ range.push(i); } return range; } range(1, 10, 4) // => [1, 5, 9] range(1, 10) // => [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
เขียนง่าย และเราสามารถหลีกเลี่ยงการนำเข้าไลบรารี เช่น Lodash สำหรับฟังก์ชันเดียวได้!
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
การสร้างฟังก์ชันช่วงที่ไม่ใช่ตัวเลข
ตอนนี้ คุณอาจจะถามว่า แล้วช่วงที่ไม่ใช่ตัวเลข เช่น อักขระล่ะ? มีตัวเลือกบางอย่างให้เราปรับใช้กับ JavaScript
เราจะใช้ charCodeAt()
วิธีรับตัวเลขที่เราจะเพิ่มแล้วดันไปยังอาร์เรย์โดยใช้ String.fromCharCode()
ซึ่งส่งคืนอักขระจากรหัสอักขระ
function charRange(start, stop) { const range = []; const end = stop.charCodeAt(0) for (let i = start.charCodeAt(0); i <= end; i++){ range.push(String.fromCharCode(i)); } return range; }; charRange('A','F') // => [ 'A', 'B', 'C', 'D', 'E', 'F' ]
ง่ายกว่าที่คุณคิดใช่ไหม
บทสรุป
ตอนนี้คุณรู้แล้วว่าการสร้างช่วงด้วย JavaScript ด้วยตัวคุณเองนั้นง่ายเพียงใด โปรดตรวจสอบให้แน่ใจว่าคุณได้บันทึกฟังก์ชันที่มีประโยชน์เหล่านี้ไว้ เรามั่นใจว่าฟังก์ชันเหล่านี้จะใช้งานได้ในบางจุด!