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, όπου τα κλειδιά είναι τα στοιχεία του πίνακα και οι τιμές είναι ο αριθμός των εμφανίσεών τους.
  • Στη συνέχεια, φιλτράρουμε τον αρχικό πίνακα, αφήνοντας μόνο τα στοιχεία που εμφανίζονται μία φορά.

Έτσι, η μέθοδος λειτουργεί όπως μια κανονική μέθοδος πίνακα και διατηρεί τη σειρά των στοιχείων.