Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Khoảng cách đến nguyên âm gần nhất trong chuỗi - JavaScript

Viết hàm nhận vào một chuỗi có ít nhất một nguyên âm, trả về mảng số nguyên nơi mỗi phần tử là khoảng cách từ ký tự tại vị trí đó đến nguyên âm gần nhất.

Ví dụ

Chuỗi: 'vatghvf'

Nguyên âm ở vị trí 1 ('a'). Khoảng cách:

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

Giải pháp

Mã triển khai:

const str = 'vatghvf';
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 = [];
  
  // Tìm vị trí các nguyên âm
  for (let i = 0; i < s.length; i++) {
    if ('aeiou'.includes(s[i])) {
      vowelIndex.push(i);
    }
  }
  
  // Tính khoảng cách min đến nguyên âm cho mỗi ký tự
  return s.split('').map((el, ind) => nearest(vowelIndex, ind));
};

console.log(vowelNearestDistance(str));

Kết quả

Đầu ra trong console:

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