मान लीजिए कि हमारे पास इस तरह के शाब्दिक दो सरणियाँ हैं -
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 ]