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