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 ობიექტს, სადაც გასაღებები მასივის ელემენტებია, მნიშვნელობები კი მათი გამოჩენის რაოდენობა.
  • შემდეგ ვფილტრავთ თავდაპირველ მასივს, მხოლოდ იმ ელემენტებს რომლებსაც გამოჩენის რაოდენობა 1-ია.

ამგვარად, მეთოდი მუშაობს როგორც ჩვეულებრივი მასივის მეთოდი და ინარჩუნებს ელემენტების წესრიგს.