สมมติว่าเรามีอาร์เรย์ของสตริงที่มีชื่อบางอย่างเช่นนี้ −
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