ปัญหา
เราต้องเขียนฟังก์ชัน JavaScript ที่รับสตริงสองสตริง str1 และ str2 เป็นอาร์กิวเมนต์แรกและอาร์กิวเมนต์ที่สอง
ฟังก์ชันควรเรียง str1 ตามลำดับของตัวอักษรที่ปรากฏใน str2
ตัวอย่างเช่น หากอินพุตคือ
อินพุต
const str1 = 'coding';
const str2 = 'gncabdi';
เอาต์พุต
const output = 'gncdio';
คำอธิบายเอาต์พุต
ตัวอักษรที่ปรากฏก่อนใน str2 จะถูกวางไว้ก่อน ตามด้วยตัวอักษรที่มากว่า และสุดท้ายคือตัวอักษรที่ไม่มีใน str2
ตัวอย่างโค้ด
const str1 = 'coding';
const str2 = 'gncabdi';
const sortByOrder = (str1 = '', str2 = '') => {
str2 = str2.split('');
const arr1 = str1
.split('')
.filter(el => str2.includes(el))
.sort((a, b) => str2.indexOf(a) - str2.indexOf(b));
const arr2 = str1
.split('')
.filter(el => !str2.includes(el));
return arr1.join('') + arr2.join('');
};
console.log(sortByOrder(str1, str2));
ผลลัพธ์
gncdio