Η μέθοδος split
Η μέθοδος split διαχωρίζει
συμβολοσειρές σε πίνακα σύμφωνα με τον καθορισμένο
διαχωριστή στην πρώτη παράμετρο.
Εάν δεν καθοριστεί - θα επιστραφεί ολόκληρη
η συμβολοσειρά. Εάν καθοριστεί ως κενά εισαγωγικά,
τότε κάθε χαρακτήρας της συμβολοσειράς θα τοποθετηθεί σε ξεχωριστό
στοιχείο του πίνακα. Μέσω της δεύτερης προαιρετικής
παραμέτρου μπορεί να καθοριστεί ο μέγιστος
αριθμός στοιχείων στον προκύπτοντα πίνακα.
Σύνταξη
συμβολοσειρά.split([διαχωριστής], [μέγιστος αριθμός στοιχείων]);
Παράδειγμα
Ας υποθέσουμε ότι υπάρχει μια συμβολοσειρά με παύλες. Ας
διαχωρίσουμε αυτήν τη συμβολοσειρά σε πίνακα βάσει του διαχωριστή
'-':
let str = 'ab-cd-ef';
let arr = str.split('-');
console.log(arr);
Αποτέλεσμα εκτέλεσης του κώδικα:
['ab', 'cd', 'ef']
Παράδειγμα
Ας διαχωρίσουμε ξανά τη συμβολοσειρά βάσει του διαχωριστή
'-', ωστόσο ως δεύτερη παράμετρο ας καθορίσουμε
τον μέγιστο αριθμό στοιχείων στον προκύπτοντα
πίνακα, για παράδειγμα, 2. Σε αυτήν την περίπτωση στον
πίνακα θα καταγραφούν μόνο 2 στοιχεία:
let str = 'ab-cd-ef';
let arr = str.split('-', 2);
console.log(arr);
Αποτέλεσμα εκτέλεσης του κώδικα:
['ab', 'cd']
Παράδειγμα
Ας γράψουμε κάθε χαρακτήρα της συμβολοσειράς σε ξεχωριστό στοιχείο πίνακα:
let str = 'abcde';
let arr = str.split('');
console.log(arr);
Αποτέλεσμα εκτέλεσης του κώδικα:
['a', 'b', 'c', 'd', 'e']
Παράδειγμα
Ας γράψουμε τους πρώτους 3 χαρακτήρες της συμβολοσειράς
σε ξεχωριστά στοιχεία πίνακα:
let str = 'abcde';
let arr = str.split('', 3);
console.log(arr);
Αποτέλεσμα εκτέλεσης του κώδικα:
['a', 'b', 'c']
Παράδειγμα
Ας χρησιμοποιήσουμε την split για να διαχωρίσουμε
μια συμβολοσειρά με αριθμούς. Προσέξτε ότι
στο αποτέλεσμα θα προκύψει ένας πίνακας συμβολοσειρών,
και όχι ένας πίνακας αριθμών:
let str = '12345';
let arr = str.split('');
console.log(arr);
Αποτέλεσμα εκτέλεσης του κώδικα:
['1', '2', '3', '4', '5']
Παράδειγμα . Εφαρμογή
Ας αντιστρέψουμε τους χαρακτήρες της συμβολοσειράς σε αντίστροφη
σειρά. Για να το κάνουμε αυτό, θα διαχωρίσουμε τη συμβολοσειρά σε πίνακα
χρησιμοποιώντας την split με διαχωριστή ''
(αυτό θα τοποθετήσει κάθε χαρακτήρα της συμβολοσειράς σε ξεχωριστό
στοιχείο πίνακα), θα αντιστρέψουμε αυτόν τον πίνακα
χρησιμοποιώντας την reverse
και στη συνέχεια θα ενώσουμε τον αντεστραμμένο πίνακα πάλι
χρησιμοποιώντας την join:
let str = '123456789';
let arr1 = str.split('');
let arr2 = arr1.reverse();
let res = arr2.join('');
console.log(res);
Αποτέλεσμα εκτέλεσης του κώδικα:
'987654321'
Παράδειγμα . Εφαρμογή
Ας απλοποιήσουμε τη λύση του προηγούμενου προβλήματος - ας συνδυάσουμε όλες τις εντολές σε μια αλυσίδα:
let str = '123456789';
let res = str.split('').reverse().join('');
console.log(res);
Αποτέλεσμα εκτέλεσης του κώδικα:
'987654321'
Παράδειγμα . Εφαρμογή
Δίνεται μια συμβολοσειρά με ψηφία. Ας βρούμε το άθροισμα των ψηφίων
από αυτήν τη συμβολοσειρά. Για να το κάνουμε αυτό, θα διαχωρίσουμε τη συμβολοσειρά
σε πίνακα, και στη συνέχεια θα διατρέξουμε αυτόν τον πίνακα και
θα βρούμε το άθροισμά του. Μας περιμένει μια παγίδα: η split
επιστρέφει συμβολοσειρές, επομένως κατά τη διάρκεια της άθροισης
θα μετατρέψουμε αυτά τα ψηφία-συμβολοσειρές σε πραγματικούς
αριθμούς χρησιμοποιώντας την Number:
let str = '12345';
let arr = str.split('');
let sum = 0;
for (let i = 0; i < arr.length; i++) {
sum += Number(arr[i]);
}
console.log(sum);
Αποτέλεσμα εκτέλεσης του κώδικα:
15
Παράδειγμα . Εφαρμογή
Δίνεται ένας αριθμός. Ας γράψουμε κάθε ψηφίο
αυτού του αριθμού σε ξεχωριστό στοιχείο πίνακα.
Εδώ υπάρχει μια παγίδα - η split εφαρμόζεται
μόνο σε συμβολοσειρές, αλλά εμείς έχουμε αριθμό. Ας μετατρέψουμε
πρώτα τον αριθμό σε συμβολοσειρά χρησιμοποιώντας την String,
και στη συνέχεια ας εφαρμόσουμε την split:
let num = 12345;
let str = String(num);
let arr = str.split('');
console.log(arr);
Αποτέλεσμα εκτέλεσης του κώδικα:
['1', '2', '3', '4', '5']
Δείτε επίσης
-
η μέθοδος
join,
που ενώνει τα στοιχεία ενός πίνακα σε συμβολοσειρά -
η μέθοδος
split,
που διαχωρίζει μια συμβολοσειρά βάσει κανονικής έκφρασης -
η μέθοδος
reverse,
που αλλάζει τη σειρά των στοιχείων σε έναν πίνακα αντίστροφα -
η ιδιότητα
length,
που επιτρέπει τον προσδιορισμό του μήκους μιας συμβολοσειράς