Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

แทรกตัวอักษรที่ตำแหน่งที่ n ในสตริงด้วย JavaScript

เราต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์กิวเมนต์ 3 ค่า:

  1. สตริง (String)
  2. ตัวเลข (Number) - จำนวนตัวอักษรก่อนแทรก
  3. ตัวอักษรเดี่ยว (Character) - ตัวอักษรที่จะแทรก

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

ตัวอย่าง

const str = 'NewDelhi';
const n = 3;
const char = ' ';

ผลลัพธ์ที่คาดหวัง:

'Ne wDe lhi'

โค้ดตัวอย่าง

const str = 'NewDelhi';
const n = 3;
const char = ' ';

const insertAtEvery = (str = '', num = 1, char = ' ') => {
  // กลับสตริงเพื่อจัดการจากท้ายไปหน้า
  str = str.split('').reverse().join('');
  
  // สร้าง Regex สำหรับจับกลุ่มทุก num ตัวอักษร
  const regex = new RegExp('.{1,' + num + '}', 'g');
  
  // แทรก char ระหว่างกลุ่ม
  str = str.match(regex).join(char);
  
  // กลับสตริงกลับมาปกติ
  str = str.split('').reverse().join('');
  
  return str;
};

console.log(insertAtEvery(str, n, char));

ผลลัพธ์

Ne wDe lhi

วิธีทำอีกแบบ (เข้าใจง่ายกว่า)

const insertAtEverySimple = (str, n, char) => {
  let result = '';
  for (let i = 0; i < str.length; i += n) {
    result += str.slice(i, i + n);
    if (i + n < str.length) result += char;
  }
  return result;
};