เราจำเป็นต้องจัดเรียงอาร์เรย์ 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' ]