কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে অবজেক্ট অ্যারে একাধিক প্রোপার্টি দিয়ে সর্ট করা

ধরুন, আমাদের নিচের মত একটি অবজেক্ট অ্যারে আছে:

const arr = [    { id: 1, score: 1, isCut: false, dnf: false },    { id: 2, score: 2, isCut: false, dnf: false },    { id: 3, score: 3, isCut: false, dnf: false },    { id: 4, score: 4, isCut: false, dnf: false },    { id: 5, score: 5, isCut: true, dnf: true },    { id: 6, score: 6, isCut: true, dnf: false },    { id: 7, score: 7, isCut: true, dnf: false },    { id: 8, score: 8, isCut: true, dnf: false },    { id: 9, score: 9, isCut: true, dnf: false },    { id: 10, score: 0, isCut: false, dnf: false },    { id: 11, score: -1, isCut: false, dnf: false },    { id: 12, score: -2, isCut: false, dnf: true },    { id: 13, score: -3, isCut: false, dnf: false },    { id: 14, score: -4, isCut: false, dnf: false },    { id: 15, score: -5, isCut: false, dnf: false },    { id: 16, score: 10, isCut: true, dnf: false } ];

আমাদের উপরের অ্যারেটি নিচের κριতেরিয়া অনুযায়ী সর্ট করতে হবে:

যদি dnf true হয়,

অবজেক্টটি নিচে যাবে; সব dnf অবজেক্ট score অনুযায়ী সর্ট হবে

যদি isCut true হয়,

অবজেক্টটি নিচে যাবে, কিন্তু dnf-এর উপরে; সব isCut অবজেক্ট score অনুযায়ী সর্ট হবে

বাকিগুলো score অনুযায়ী সর্ট হবে, এবং স্কোর সমান হলে id অনুযায়ী।

উদাহরণ

এটির কোড হবে:

const arr = [    { id: 1, score: 1, isCut: false, dnf: false },    { id: 2, score: 2, isCut: false, dnf: false },    { id: 3, score: 3, isCut: false, dnf: false },    { id: 4, score: 4, isCut: false, dnf: false },    { id: 5, score: 5, isCut: true, dnf: true },    { id: 6, score: 6, isCut: true, dnf: false },    { id: 7, score: 7, isCut: true, dnf: false },    { id: 8, score: 8, isCut: true, dnf: false },    { id: 9, score: 9, isCut: true, dnf: false },    { id: 10, score: 0, isCut: false, dnf: false },    { id: 11, score: -1, isCut: false, dnf: false },    { id: 12, score: -2, isCut: false, dnf: true },    { id: 13, score: -3, isCut: false, dnf: false },    { id: 14, score: -4, isCut: false, dnf: false },    { id: 15, score: -5, isCut: false, dnf: false },    { id: 16, score: 10, isCut: true, dnf: false } ]; const sortComplex = (arr = []) => {    arr.sort(function (a, b) {       const order = (dnf, isCut) => {          return [0, 1, 3, 2][dnf * 2 + isCut];       }       return order(a.dnf, a.isCut) - order(b.dnf, b.isCut) || b.score - a.score;    }); }; sortComplex(arr); console.log(arr);

আউটপুট

কনসোলে আউটপুট হবে:

[    { id: 4, score: 4, isCut: false, dnf: false },    { id: 3, score: 3, isCut: false, dnf: false },    { id: 2, score: 2, isCut: false, dnf: false },    { id: 1, score: 1, isCut: false, dnf: false },    { id: 10, score: 0, isCut: false, dnf: false },    { id: 11, score: -1, isCut: false, dnf: false },    { id: 13, score: -3, isCut: false, dnf: false },    { id: 14, score: -4, isCut: false, dnf: false },    { id: 15, score: -5, isCut: false, dnf: false },    { id: 16, score: 10, isCut: true, dnf: false },    { id: 9, score: 9, isCut: true, dnf: false },    { id: 8, score: 8, isCut: true, dnf: false },    { id: 7, score: 7, isCut: true, dnf: false },    { id: 6, score: 6, isCut: true, dnf: false },    { id: 5, score: 5, isCut: true, dnf: true },    { id: 12, score: -2, isCut: false, dnf: true } ]
  1. জাভাস্ক্রিপ্টে TypedArray.sort() ফাংশন

  2. জাভাস্ক্রিপ্টে মার্জ সোর্ট বনাম কুইক সোর্ট

  3. জাভাস্ক্রিপ্ট - অ্যারে অবজেক্টের length প্রোপার্টি

  4. জাভাস্ক্রিপ্টে Array.prototype.sort() মেথড