ধরুন, আমাদের দুটি অ্যারে আছে, মনে করুন arr1 এবং arr2। arr2-এর এলিমেন্টগুলো ডISTINCT, এবং arr2-এ সব এলিমেন্ট arr1-এও আছে।
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা দুটি такой অ্যারে গ্রহণ করে এবং arr1-এর এলিমেন্টগুলো সর্ট করবে যাতে arr1-এ আইটেমগুলোর রিলেটিভ অর্ডার arr2-এর মতো হয়। যেসব এলিমেন্ট arr2-এ নেই, সেগুলো arr1-এর শেষে আরোহী ক্রমে রাখা হবে।
উদাহরণস্বরূপ- ইনপুট অ্যারে দুটি যদি হয়:
const arr1 = [2,3,1,3,2,4,6,7,9,2,19]; const arr2 = [2,1,4,3,9,6];
তাহলে আউটপুট হবে:
const output = [2,2,2,1,4,3,3,9,6,7,19];
উদাহরণ
const arr1 = [2,3,1,3,2,4,6,7,9,2,19];
const arr2 = [2,1,4,3,9,6];
const relativeSortArray = (arr1, arr2) => {
const map = new Map();
const len = arr2.length;
arr2.forEach((a, i) => {
map.set(a, i);
});
return arr1.sort((a, b) => {
a = map.has(a) ? map.get(a) : len + a;
b = map.has(b) ? map.get(b) : len + b;
return a - b;
});
};
console.log(relativeSortArray(arr1, arr2));
আউটপুট
কনসোলে আউটপুট হবে:
[ 2, 2, 2, 1, 4, 3, 3, 9, 6, 7, 19 ]