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

การเรียงลำดับหนึ่งสตริงตามลำดับวินาทีใน JavaScript


ปัญหา

เราจำเป็นต้องเขียนฟังก์ชัน 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