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

การนับตัวอักษรที่อยู่ตำแหน่งตรงกับอักษรอังกฤษในอาร์เรย์สตริงใน JavaScript

ปัญหา

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

เช่น จำนวนนี้สำหรับสตริง 'akcle' จะเป็น 3 เพราะตัวอักษร 'a', 'c', 'e' มีดัชนี 1-based เป็น 1, 3, 5 ทั้งในสตริงและอักษรอังกฤษ

ตัวอย่าง

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

const arr = ["abode", "ABc", "xyzD"];
const findIndexPairCount = (arr = []) => {
  const alphabet = 'abcdefghijklmnopqrstuvwxyz';
  const res = [];
  for (let i = 0; i < arr.length; i++) {
    let count = 0;
    for (let j = 0; j < arr[i].length; j++) {
      if (arr[i][j].toLowerCase() === alphabet[j]) {
        count++;
      }
    }
    res.push(count);
  }
  return res;
};
console.log(findIndexPairCount(arr));

ผลลัพธ์

[ 4, 3, 1 ]

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

"abode": a(1)=a, b(2)=b, o(3)≠c, d(4)=d, e(5)=e → 4 ตัว / "ABc": a(1)=a, b(2)=b, c(3)=c → 3 / "xyzD": x(1)≠a, y(2)≠b, z(3)≠c, d(4)=d → 1 โค้ดเปรียบเทียบตัวอักษรตำแหน่ง j กับ alphabet[j]