Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

การสร้างอาร์เรย์จากอักขระเฉพาะของสตริงใน JavaScript


เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับสตริงและเริ่มจับคู่อักขระจาก 0

และทุกครั้ง ฟังก์ชันพบอักขระพิเศษ (ไม่ซ้ำกัน) ซึ่งควรเพิ่มจำนวนการแมปขึ้น 1 มิฉะนั้น ก็ควรจับคู่ตัวเลขเดียวกันสำหรับอักขระที่ซ้ำกัน

ตัวอย่างเช่น หากสตริงคือ −

const str = 'heeeyyyy';

จากนั้นผลลัพธ์ควรเป็น −

const output = [0, 1, 1, 1, 2, 2, 2, 2];

ดังนั้น เรามาเขียนโค้ดสำหรับฟังก์ชันนี้กัน −

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const str = 'heeeyyyy';
const mapString = str => {
   const res = [];
   let curr = '', count = -1;
   for(let i = 0; i < str.length; i++){
      if(str[i] === curr){
         res.push(count);
      }else{
         count++;
         res.push(count);
         curr = str[i];
      };
   };
   return res;
};
console.log(mapString(str));

ผลลัพธ์

ผลลัพธ์ในคอนโซลจะเป็น -

[
   0, 1, 1, 1,
   2, 2, 2, 2
]