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

การทำซ้ำตัวอักษรตามดัชนี 1-based ในสตริงพร้อมขีดคั่นใน JavaScript

ปัญหา

เราต้องเขียนฟังก์ชัน JavaScript ที่รับสตริงตัวอักษรภาษาอังกฤษพิมพ์เล็ก ฟังก์ชันควรสร้างสตริงใหม่ที่ตัวอักษรแต่ละตัวถูกทำซ้ำตามจำนวนดัชนี 1-based ของมันในสตริง ในรูปพิมพ์ใหญ่ และชุดตัวอักษรต่างกันคั่นด้วยขีด '-'

ดังนั้น 'abcd' จะกลายเป็น:

"A-Bb-Ccc-Dddd"

ตัวอย่าง

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

const str = 'abcd';
const repeatStrings = (str) => {
  const res = [];
  for (let i = 0; i < str.length; i++) {
    const el = str[i];
    let temp = el.repeat(i + 1);
    temp = temp[0].toUpperCase() + temp.substring(1, temp.length);
    res.push(temp);
  }
  return res.join('-');
};
console.log(repeatStrings(str));

ผลลัพธ์

A-Bb-Ccc-Dddd

คำอธิบายเพิ่มเติม

ตัวที่ i (0-based) ทำซ้ำ i+1 ครั้ง ตัวแรกพิมพ์ใหญ่ ที่เหลือพิมพ์เล็ก join ด้วย '-' สามารถเขียนสั้นได้ด้วย `str.split('').map((c,i) => c.toUpperCase() + c.repeat(i)).join('-')`