ধরুন, আমাদের কাছে এইরকম স্ট্রিংগুলির একটি অ্যারে আছে −
const arr = [ '.0', '.1', '.2', '.4', '.2.1', '.3', '.4.1', '.5', '.5.1.5' ];
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এইরকম একটি অ্যারেতে নেয়। আমাদের ফাংশন সহজভাবে অ্যারেকে ক্রমবর্ধমান ক্রমে সাজাতে হবে (যেমন একজন সাধারণ মানুষ দেখেছেন)।
এর মানে হল '.0' সহ স্ট্রিং, '.1' এর পরে, '.2' এর পরে, ইত্যাদি। অতএব, সাজানোর পরে, অ্যারেটি −
এর মত হওয়া উচিতconst output = [ '.0', '.1', '.2.1', '.2, '.3', '.4', '.4.1', '.5', '.5.1.5' ];
উদাহরণ
এর জন্য কোড হবে −
const arr = [ '.0', '.1', '.2', '.4', '.2.1', '.3', '.4.1', '.5', '.5.1.5' ]; const compare = (a, b) => { if (a === b) { return 0 }; const aArr = a.split("."), bArr = b.split("."); for (let i = 0; i < Math.min(aArr.length, bArr.length); i++) { if (parseInt(aArr[i]) < parseInt(bArr[i])) { return -1 }; if (parseInt(aArr[i]) > parseInt(bArr[i])) { return 1 }; } if (aArr.length < bArr.length) { return -1 }; if (aArr.length > bArr.length) { return 1 }; return 0; }; arr.sort(compare); console.log(arr);
আউটপুট
এবং কনসোলে আউটপুট হবে −
[ '.0', '.1', '.2', '.2.1', '.3', '.4', '.4.1', '.5', '.5.1.5' ]