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

การสร้างและจับคู่สตริงของอาร์เรย์ตามสตริงสุ่มใน JavaScript


สมมติว่าเรามีอาร์เรย์ของสตริงที่มีชื่อบางอย่างเช่นนี้ −

const arr = ['Dinesh', 'Mahesh', 'Rohit', 'Kamal', 'Jatin Sapru', 'Jai'];

และสตริงอักขระแบบสุ่มเช่นนี้ −

const str = 'lsoaakjm';

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

จากนั้น ฟังก์ชัน สำหรับแต่ละองค์ประกอบของอาร์เรย์ควรตรวจสอบว่าองค์ประกอบนั้นสามารถสร้างขึ้นได้อย่างสมบูรณ์จากสตริงที่จัดเป็นอาร์กิวเมนต์ที่สองหรือไม่

หากเงื่อนไขนี้ตรงกับองค์ประกอบใดๆ ของอาร์เรย์ เราควรส่งคืนองค์ประกอบนั้น มิฉะนั้น เราควรส่งคืนสตริงว่าง

ตัวอย่าง

ต่อไปนี้เป็นรหัส -

const arr = ['Dinesh', 'Mahesh', 'Rohit', 'Kamal', 'Jatin Sapru', 'Jai'];
const str = 'lsoaakjm';
const initialise = (str = '', map) => {
   for(let i = 0; i < str.length; i++){
      map[str[i]] = (map[str[i]] || 0) + 1;
   };
};
const deleteAll = map => {
   for(key in map){
      delete map[key];
   };
};
const checkForFormation = (arr = [], str = '') => {
   const map = {};
   for(let i = 0; i < arr.length; i++){
      const el = arr[i].toLowerCase();
      initialise(str, map);
      let j;
      for(j = 0; j < el.length; j++){
         const char = el[j];
         if(!map[char]){
            break;
         }else{
            map[char]--;
         }
      };
      if(j === el.length){
         return arr[i];
      };
      deleteAll(map);
   }
   return '';
};
console.log(checkForFormation(arr, str));

ผลลัพธ์

ต่อไปนี้เป็นเอาต์พุตคอนโซล -

Kamal