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

การหาระยะทางไปยังสระใกล้ที่สุดในสตริง - JavaScript

ฟังก์ชันนี้คำนวณระยะทางจากตัวอักษรแต่ละตัวในสตริงไปยังสระ (vowel: a, e, i, o, u) ที่ใกล้ที่สุด

ตัวอย่าง

// Input: 'vatghvf'
// Output: [1, 0, 1, 2, 3, 4, 5]
// คำอธิบาย: v(1) a(0) t(1) g(2) h(3) v(4) f(5)

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

const str = 'vatghvf';

// ฟังก์ชันช่วย: หาระยะทางน้อยที่สุดจาก index ไปยังอาร์เรย์ตำแหน่งสระ
const nearest = (arr = [], el) => arr.reduce((acc, val) => Math.min(acc, Math.abs(val - el)), Infinity);

const vowelNearestDistance = (str = '') => {
  const s = str.toLowerCase();
  const vowelIndex = [];

  // เก็บตำแหน่งของสระทั้งหมด
  for (let i = 0; i < s.length; i++) {
    if ('aeiou'.includes(s[i])) {
      vowelIndex.push(i);
    }
  }

  // คำนวณระยะทางสำหรับแต่ละตัวอักษร
  return s.split('').map((el, ind) => nearest(vowelIndex, ind));
};

console.log(vowelNearestDistance(str));

ขั้นตอนการทำงาน

  1. แปลงสตริงเป็นตัวพิมพ์เล็ก
  2. สแกนหาตำแหน่งของสระทั้งหมด เก็บในอาร์เรย์ vowelIndex
  3. สำหรับแต่ละตัวอักษร คำนวณระยะทางไปยังสระที่ใกล้ที่สุด
  4. ใช้ reduce() หาค่า Math.min ของระยะทางสัมบูรณ์

ผลลัพธ์

[ 1, 0, 1, 2, 3, 4, 5 ]

ประยุกต์ใช้: การประมวลผลภาษาธรรมชาติ (NLP) การวิเคราะห์ข้อความ การสร้างเกมคำ