Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การสร้างช่วงด้วย JavaScript

หลายครั้งในการเขียนฟังก์ชันต่างๆ เราอาจต้องการสร้างช่วงเพื่อทำงานกับข้อมูลบางอย่าง ช่วงแสดงถึงข้อมูลในอาร์เรย์หรือวัตถุที่มีค่าเริ่มต้นและสิ้นสุด

มีภาษาจำนวนมากที่สร้างเมธอดในการสร้างช่วง เช่น 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 ด้วยตัวคุณเองนั้นง่ายเพียงใด โปรดตรวจสอบให้แน่ใจว่าคุณได้บันทึกฟังก์ชันที่มีประโยชน์เหล่านี้ไว้ เรามั่นใจว่าฟังก์ชันเหล่านี้จะใช้งานได้ในบางจุด!