মনে করুন আমাদের নিচের মত অবজেক্টের একটি অ্যারে আছে −
const arr = [ {flag: true, other: 1}, {flag: true, other: 2}, {flag: false, other: 3}, {flag: true, other: 4}, {flag: true, other: 5}, {flag: true, other: 6}, {flag: false, other: 7} ];আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এই অ্যারেটি নিচের শর্ত অনুযায়ী সর্ট করবে −
- যদি arr.flag === false হয়, তবে ম্যাচিং এলিমেন্টগুলো অ্যারেতে আগে রাখা হবে, তবে পূর্বের ম্যাচিং এলিমেন্টগুলোর পরেই।
- যে এলিমেন্টগুলো ম্যাচ করে না, সেগুলো পূর্বের অর্ডারে থাকবে।
- অ্যাপিয়ের ক్రమ গুরুত্বপূর্ণ।
উপরোক্ত অ্যারেতে আউটপুট হবে −
const output = [ {flag: false, other: 3}, {flag: false, other: 7}, {flag: true, other: 1}, {flag: true, other: 2}, {flag: true, other: 4}, {flag: true, other: 5}, {flag: true, other: 6} ];উদাহরণ
নিচে কোডটি দেওয়া হলো −
const arr = [ {flag: true, other: 1}, {flag: true, other: 2}, {flag: false, other: 3}, {flag: true, other: 4}, {flag: true, other: 5}, {flag: true, other: 6}, {flag: false, other: 7} ]; const sortByFlag = arr => { const sorter = (a, b) => { if(!a['flag'] && b['flag']){ return -1; }; if(a['flag'] && !b['flag']){ return 1; } return a['other'] - b['other']; } arr.sort(sorter); }; sortByFlag(arr); console.log(arr);আউটপুট
কনসোলে নিম্নলিখিত আউটপুট দেখা যাবে −
[ { flag: false, other: 3 }, { flag: false, other: 7 }, { flag: true, other: 1 }, { flag: true, other: 2 }, { flag: true, other: 4 }, { flag: true, other: 5 }, { flag: true, other: 6 } ]