मान लीजिए हमारे पास लिटरल्स के दो ऐरे हैं:
const arr1 = [1, 3, 2, 4, 5, 6]; const arr2 = [1, 2, 5];
हमें एक जावास्क्रिप्ट फंक्शन लिखना है जो ऐसे दो ऐरे ले। फिर हमारा फंक्शन एक नया ऐरे वापस करना चाहिए जिसमें arr1 के सभी एलिमेंट्स हों लेकिन arr2 के अनुसार सॉर्टेड हों।
जैसे दोनों ऐरे में आने वाले एलिमेंट्स पहले दूसरे ऐरे में उनके ऑर्डर के अनुसार आएं, फिर केवल पहले ऐरे में मौजूद एलिमेंट्स अपने ऑर्डर को बनाए रखें।
उदाहरण
इसके लिए कोड:
const arr1 = [1, 3, 2, 4, 5, 6]; const arr2 = [1, 2, 5]; const sortByReference = (arr1, arr2) => { const inBoth = el => arr1.indexOf(el) !== -1 && arr2.indexOf(el) !== -1; const sorter = (a, b) => { if(inBoth(a) && inBoth(b)){ return arr1.indexOf(a) - arr2.indexOf(b); } if(inBoth(a)){ return -1; }; if(inBoth(b)){ return 1; }; return 0; }; arr1.sort(sorter); }; sortByReference(arr1, arr2); console.log(arr1);आउटपुट
कंसोल में आउटपुट:
[ 1, 2, 5, 3, 4, 6 ]