javascript - tutorial - w3schools




আমি কীভাবে অ্যারে কেবল যুক্ত মানগুলির সংখ্যাটি ফিরিয়ে দিতে পারি? (3)

আমি প্রতিটি সংখ্যার সংখ্যার সংখ্যা গণনা করে কোনও বস্তুতে কমাতে চাই। তারপরে Object.values সংখ্যা গণনা করতে অবজেক্টের Object.values আবার হ্রাস করুন, প্রতিটি পুনরাবৃত্তির সঞ্চয়ের সাথে Math.floor(count / 2) করুন:

function pairNumber(arr) {
  const itemCounts = arr.reduce((a, item) => {
    a[item] = (a[item] || 0) + 1;
    return a;
  }, {});
  return Object.values(itemCounts)
    .reduce((pairsSoFar, count) => pairsSoFar + Math.floor(count / 2), 0);
}
console.log(pairNumber([10, 10, 10, 10, 20, 20, 20, 30, 50]))

যদি সম্ভব হয় তবে .sort ভাল - যা O(n) (ন্যূনতম) থেকে O(n log n) গণ্য জটিলতা বৃদ্ধি করে।

আমি অ্যারেতে জোড়াযুক্ত মানগুলির সংখ্যা প্রদর্শন করতে চাই। উদাহরণস্বরূপ, আমার কাছে এই অ্যারে রয়েছে:

[10,10,10,10,20,20,20,30,50]

আমি 3 প্রদর্শন করতে চাই কারণ আমাদের 3 টি সংখ্যার সংখ্যা রয়েছে। কিভাবে আমি এটি করতে পারব?

function pairNumber(arr) {
  var sorted_arr = arr.sort();
  var i;
  var results = [];
  for (i = 0; i < sorted_arr.length; i++) {
    if (sorted_arr[i + 1] == sorted_arr[i]) {
      results.push(sorted_arr[i]);
    }

  }
  return results.length;
}
console.log(pairNumber([10, 10, 10, 10, 20, 20, 20, 30, 50]))


এখানে একটি Set ব্যবহার করে অন্য পদ্ধতির:

function pairNumbers(arr) {
  let count = 0;
  const set = new Set();

  for (let i = 0; i < arr.length; i++) {
    if (set.has(arr[i])) {
      count++;
      set.delete(arr[i])
    } else {
      set.add(arr[i])
    }
  }

  return count;
}
console.log(pairNumbers([10, 10, 10, 10, 20, 20, 20, 30, 50])) // 3


সমস্ত ছেলেদের অনেক ধন্যবাদ যা এই সমস্যাটি কীভাবে সমাধান করবেন তা আরও বুঝতে আমাকে সহায়তা করে। পোস্টগুলিতে উত্তরগুলি স্থির করার পরে আমি আমার নিজস্ব সমাধানটি নিয়ে আসছি।

আপনাকে ধন্যবাদ আমি বুঝতে পারি আমার পুনরাবৃত্তি তুলনা রোধ করা উচিত কিনা শেষে আমার বাড়ানো উচিত।

function pairNumbers(arr) {
const sorted_arr = arr.sort();
const results = [];
for (let i = 0; i < sorted_arr.length; i++) {
if (sorted_arr[i] == sorted_arr[i + 1]) {
results.push(sorted_arr[i]);
i = i + 1; 
}

}
return results.length;
}
console.log(pairNumbers([10, 10, 10, 10, 20, 20, 20, 30, 50])) // 3







javascript