Computer >> Máy Tính >  >> Lập trình >> Javascript

Thay thế mọi trường hợp ký tự thứ n trong một chuỗi - JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript lấy một chuỗi làm đối số đầu tiên, một số, chẳng hạn như n, làm đối số thứ hai và một ký tự, chẳng hạn như c, làm đối số thứ ba. Hàm phải thay thế lần xuất hiện thứ n của bất kỳ ký tự nào bằng ký tự được cung cấp làm đối số thứ ba và trả về chuỗi mới.

Ví dụ

Sau đây là mã -

const str = 'This is a sample string';
const num = 2;
const char = '*';
const replaceNthAppearance = (str, num, char) => {
   const creds = str.split('').reduce((acc, val, ind, arr) => {
      let { res, map } = acc;
      if(!map.has(val)){
         map.set(val, 1);
         if(num === 0){
            res += char;
         }else{
            res += val;
         }
      }else{
         const freq = map.get(val);
         if(num - freq === 1){
            res += char;
         }else{
            res += val;
      };
      map.set(val, freq+1);
   };
   return { res, map };
   }, {
      res: '',
      map: new Map()
   });
   return creds.res;
}
console.log(replaceNthAppearance(str, num, char));

Đầu ra

Sau đây là đầu ra trong bảng điều khiển -

This ***a s*mple string