We are required to write a JavaScript function that takes in two arrays of numbers, second being smaller in size than the first.
Our function should be a sorted version of the first array (say in increasing order) but put all the elements that are common in both arrays to the front.
For example − If the two arrays are −
const arr1 = [5, 4, 3, 2, 1]; const arr2 = [2, 3];
Then the output should be −
const output = [2, 3, 1, 4, 5];
Example
Following is the code −
const arr1 = [5, 4, 3, 2, 1];
const arr2 = [2, 3];
// helper function
const sorter = (a, b, arr) => {
if(arr.includes(a)){
return -1;
};
if(arr.includes(b)){
return 1;
};
return a - b;
};
const prioritySort = (arr1, arr2) => {
arr1.sort((a, b) => sorter(a, b, arr2));
};
prioritySort(arr1, arr2);
console.log(arr1);Output
Following is the output in the console −
[ 2, 3, 1, 4, 5 ]