Sobes.tech
Middle+

// findUnique մեթոդը կիրառվում է զանգվածի վրա և վերադարձնում է նոր զանգված՝ միայն եզակի տարրերով, // այն տարրերը, որոնք միայն մեկ անգամ են հանդիպում սկզբնական զանգվածում, նույն կարգով: // Անհրաժեշտ է իրականացնել findUnique մեթոդը այնպես, որ աշխատի որպես սովորական զանգվածի մեթոդ: [10, 5, 10, 1, 6, 6, 7, 9, 9, 10].findUnique(); // [5, 1, 7]

sobes.tech AI

Պատասխան AI-ից

Տեղադրելու համար findUnique մեթոդը զանգվածին, որը վերադարձնում է նոր զանգված այն տարրերով, որոնք հստակ մեկ անգամ են հանդիպում սկզբնական զանգվածում, դուք կարող եք ընդլայնել զանգվածի պրոտոտիպը հետևյալ կերպ՝

Array.prototype.findUnique = function() {
  const counts = this.reduce((acc, val) => {
    acc[val] = (acc[val] || 0) + 1;
    return acc;
  }, {});

  return this.filter(item => counts[item] === 1);
};

// Օգտագործման օրինակ՝
const arr = [10, 5, 10, 1, 6, 6, 7, 9, 9, 10];
console.log(arr.findUnique()); // [5, 1, 7]

Նկարագրություն՝

  • Նախ ստեղծում ենք counts օբյեկտը, որտեղ բանալիները զանգվածի տարրերն են, իսկ արժեքները՝ դրանց հանդիպումների քանակը:
  • Հետո ֆիլտրում ենք սկզբնական զանգվածը՝ թողնելով միայն այն տարրերը, որոնք հանդիպում են միայն մեկ անգամ:

Այսպիսով, մեթոդը աշխատում է որպես սովորական զանգվածի մեթոդ և պահպանում է տարրերի կարգը։