Η μέθοδος filter
Η μέθοδος filter επιτρέπει το φιλτράρισμα
στοιχείων πίνακα, αφήνοντας μόνο εκείνα που
ικανοποιούν μια συγκεκριμένη συνθήκη.
Η μέθοδος δέχεται ως παράμετρο μια συνάρτηση, η οποία
θα εκτελεστεί για κάθε στοιχείο του πίνακα.
Ως αποτέλεσμα η μέθοδος επιστρέφει έναν νέο
πίνακα, ο οποίος θα περιλαμβάνει μόνο εκείνα τα στοιχεία
για τα οποία η συνάρτηση που μεταβιβάστηκε επιστρέφει true.
Στη συνάρτηση μπορούν να μεταβιβαστούν τρεις παράμετροι. Εάν αυτές οι παράμετροι υπάρχουν (δεν είναι υποχρεωτικές), τότε στην πρώτη θα μεταβιβαστεί αυτόματα το στοιχείο του πίνακα, στη δεύτερη ο αριθμός του στον πίνακα (δείκτης), και στην τρίτη - ο ίδιος ο πίνακας.
Σύνταξη
let νέος πίνακας = πίνακας.filter(function(στοιχείο, δείκτης, πίνακας) {
κώδικας
return true ή false
});
Παράδειγμα
Ας φιλτράρουμε έναν πίνακα, αφήνοντας σε αυτόν μόνο θετικούς αριθμούς:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(function(elem) {
if (elem >= 0) {
return true;
} else {
return false;
}
});
console.log(res);
Αποτέλεσμα εκτέλεσης κώδικα:
[5, 1, 1, 3, 4]
Παράδειγμα
Συντομεύουμε τον κώδικα, χρησιμοποιώντας συνάρτηση βέλους:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => {
if (elem >= 0) {
return true;
} else {
return false;
}
});
console.log(res);
Αποτέλεσμα εκτέλεσης κώδικα:
[5, 1, 1, 3, 4]
Παράδειγμα
Συντομεύουμε τον κώδικα, χρησιμοποιώντας σύντμηση λογικών πράξεων:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => {
return elem >= 0;
});
console.log(res);
Αποτέλεσμα εκτέλεσης κώδικα:
[5, 1, 1, 3, 4]
Παράδειγμα
Συντομεύουμε τον κώδικα, χρησιμοποιώντας χαρακτηριστικά των συναρτήσεων βέλους:
let arr = [-2, 5, 1, -5, -1, 1, 3, 4, -1];
let res = arr.filter(elem => elem > 0);
console.log(res);
Αποτέλεσμα εκτέλεσης κώδικα:
[5, 1, 1, 3, 4]
Παράδειγμα
Εάν χρειαστεί, στην τρίτη παράμετρο μπορεί να μεταβιβαστεί ο ίδιος ο πίνακας:
let res = arr.filter(function(elem, index, arr) {
εδώ θα είναι διαθέσιμος ο πίνακας arr
});