Συνάρτηση που συγχωνεύει πίνακες σε έναν σε JavaScript
Ας υλοποιήσουμε τώρα μια συνάρτηση merge
που δέχεται ως παραμέτρους αυθαίρετο αριθμό
πινάκων και συγχωνεύει τα στοιχεία τους σε έναν μόνο πίνακα.
Ακολουθεί ένα παράδειγμα λειτουργίας της συνάρτησής μας:
let result = merge([1, 2, 3], [4, 5, 6], [7, 8, 9]);
console.log(result); // θα εμφανίσει [1, 2, 3, 4, 5, 6, 7, 8, 9]
Ας προχωρήσουμε στην υλοποίηση. Ας λάβουμε αρχικά τους πίνακες που περνώνται ως παράμετροι σε μορφή ενός δισδιάστατου πίνακα:
merge([1, 2, 3], [4, 5, 6], [7, 8, 9]);
function merge(...arrs){
console.log(arrs); // θα εμφανίσει [ [1, 2, 3,] [4, 5, 6], [7, 8, 9] ]
}
Ας συγχωνεύσουμε τώρα αυτόν τον δισδιάστατο πίνακα
σε έναν μονοδιάστατο. Θα χρησιμοποιήσουμε για αυτό τη μέθοδο
concat και τον τελεστή spread:
let arrs = [ [1, 2, 3,], [4, 5, 6], [7, 8, 9] ];
let result = [].concat(...arrs);
console.log(result); // θα εμφανίσει [1, 2, 3, 4, 5, 6, 7, 8, 9]
Ας προσθέσουμε αυτόν τον κώδικα στη συνάρτησή μας merge:
function merge(...arrs) {
return [].concat(...arrs);
}
let result = merge([1, 2, 3], [4, 5, 6], [7, 8, 9]);
console.log(result); // θα εμφανίσει [1, 2, 3, 4, 5, 6, 7, 8, 9]
Όπως βλέπετε, αυτή η συνάρτηση αποδείχθηκε επίσης πολύ συνοπτική.