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

জাভাস্ক্রিপ্টে সংখ্যার অ্যারে সেটগুলোর মধ্যে সর্ট করার অ্যালগরিদম

মান লিয়ে, আমাদের একটি অবজেক্টের অ্যারে আছে যাতে কিছু ডেটা আছে -

const arr = [ 
  {'item1': 144}, 
  {'item2': 0}, 
  {'item3': 366}, 
  {'item4': 15}, 
  {'item6': 366}, 
  {'item7': 19}, 
  {'item8': 211}, 
  {'item9': 121} 
];

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি অ্যারে গ্রহণ করবে এবং অবজেক্টগুলো চারটি গ্রুপে ক্লাস্টার করবে: 'XL', 'L', 'M', 'S'।

সংখ্যাগুলো তাদের আপেক্ষিক মাত্রা অনুযায়ী এই গ্রুপগুলোর মধ্যে বিতরণ হবে।

উদাহরণ

const arr = [ 
  {'item1': 144}, 
  {'item2': 0}, 
  {'item3': 366}, 
  {'item4': 15}, 
  {'item6': 366}, 
  {'item7': 19}, 
  {'item8': 211}, 
  {'item9': 121} 
]; 
const compareWithRange = (rangeArr, num) => { 
  for(let i = 0; i < rangeArr.length; i++){ 
    if(num <= rangeArr[i] && num > rangeArr[i + 1]){ 
      return i; 
    }; 
  }; 
  return rangeArr.length - 1; 
}; 
const groupBySize = (arr = []) => { 
  const mapping = arr => arr.map(el => el[Object.keys(el)[0]]); 
  const max = Math.max(...mapping(arr)); 
  const range = { 
    'XL': max, 
    'L': (max * 3) / 4, 
    'M': (max / 2), 
    'S': (max / 4) 
  }; 
  const legend = ['XL', 'L', 'M', 'S']; 
  const res = {}; 
  arr.forEach(el => { 
    const num = el[Object.keys(el)[0]]; 
    const index = compareWithRange(Object.keys(range).map(key => range[key]), num); 
    const size = legend[index]; 
    if(res.hasOwnProperty(size)){ 
      res[size].push(Object.keys(el)); 
    } else { 
      res[size] = [Object.keys(el)]; 
    } 
  }); 
  return res; 
}; 
console.log(groupBySize(arr));

আউটপুট

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

{ 
  M: [ ['item1'], ['item9'] ], 
  S: [ ['item2'], ['item4'], ['item7'] ], 
  XL: [ ['item3'], ['item6'] ], 
  L: [ ['item8'] ] 
}
  1. জাভাস্ক্রিপ্টে অ্যারে-এর বিষম সর্টিং

  2. জাভাস্ক্রিপ্টে সংখ্যাগুলোর অ্যারেতে স্বরবর্ণের ASCII কোড থাকা কিনা যাচ্চ করা

  3. জাভাস্ক্রিপ্টে সংখ্যার অ্যারের ভেরিয়েন্স (Variance) হিসাব করা

  4. জাভাস্ক্রিপ্টে অ্যারে সর্ট করে ক্রমাগত পার্থক্যের যোগফল বের করা