เราจำเป็นต้องจัดเรียงอาร์เรย์ JavaScript แบบไดนามิก เงื่อนไขคือเราต้องเรียงลำดับตามค่าที่จัดเก็บไว้ในลำดับเฉพาะในอาร์เรย์มาตรฐานที่กำหนดไว้ล่วงหน้า
สมมติว่าต่อไปนี้คือไดนามิกอาร์เรย์ของเรา –
const dbArray = ['Apple','Banana','Mango','Apple','Mango','Mango','Apple'];
และสมมติว่าอาร์เรย์มาตรฐานที่เราต้องจัดเรียงอาร์เรย์ด้านบนนั้นจะเป็นเช่น −
const stdArray = ['Mango','Apple','Banana','Grapes'];
ดังนั้น หลังจากจัดเรียง dbArray แล้ว อาร์เรย์ผลลัพธ์ของฉันควรมีลักษณะดังนี้ −
const resultArray = ['Mango','Mango','Mango','Apple','Apple','Apple','Banana'];
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
const dbArray = ['Apple','Banana','Mango','Apple','Mango','Mango','Apple']; const stdArray = ['Mango','Apple','Banana','Grapes']; const sortByRef = (arr, ref) => { const sorter = (a, b) => { return ref.indexOf(a) - ref.indexOf(b); }; arr.sort(sorter); }; sortByRef(dbArray, stdArray); console.log(dbArray);
ผลลัพธ์
ต่อไปนี้เป็นผลลัพธ์ในคอนโซล -
[ 'Mango', 'Mango', 'Mango', 'Apple', 'Apple', 'Apple', 'Banana' ]