Javascript για Πίνακες : Η κατανόηση της λειτουργίας μειώσει

Σύνταξη

arr.reduce(callbackFunction, [initialValue])

Τι μειώνουν κάνει?

Μείωση είναι μια λειτουργία που βρόχους μέσω μιας συστοιχίας.

Λειτουργίες μπορούν να εκτελεστούν πάνω στη συστοιχία μέσω μιας λειτουργίας επανάκλησης.

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

Μειώστε μπορεί να χρησιμοποιηθεί, για παράδειγμα, στο σύνολο ένα καλάθι αγορών

Παράδειγμα

  ας ARR = [1,2,3,4,5];
  arr.reduce( (συσσωρευτής, τρέχουσα τιμή, currentIndex, παράταξη) => { 
      //ορισμένες λειτουργίες;
      επιστρέψει κάτι;
  });

 

Η Λειτουργία επανάκλησης

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

Αυτά τα 4 επιχειρήματα τότε μπορεί να χρησιμοποιηθεί σε λειτουργία επανάκλησης μας.

Παίρνει τέσσερα επιχειρήματα

  1. συσσωρευτής – Το πρώτο στοιχείο της συστοιχίας επί του πρώτου βρόχου ή αρχική τιμή, εάν παρέχονται. Στη συνέχεια, η τιμή που επιστρέφεται του προηγούμενου βρόχου.
  2. τρέχουσα τιμή – Το τρέχον στοιχείο στη συστοιχία. Ξεκινά από το δεύτερο στοιχείο στη συστοιχία, δηλαδή. ARR[1], όταν η αρχική τιμή ορίσματος δεν έχει περάσει. Εάν η αρχική τιμή ορίσματος περνάει τότε τρέχουσα τιμή ξεκινά από την 1η στοιχείο στη συστοιχία ARR[0].
  3. currentIndex – Ο δείκτης της τρέχουσας στοιχείου.
  4. παράταξη – Η όλη συστοιχία.

Παράδειγμα εργασίας

ας ARR = [1,2,3,4,5];

arr.reduce(
  (συσσωρευτής, τρέχουσα τιμή, currentIndex, παράταξη) => {
    console.log(`συσσωρευτή (Την 1η βρόχο, συσσωρευτής είναι ARR[0], τότε είναι η τιμή που επιστρέφεται του προηγούμενου βρόχου): ${συσσωρευτής}`);
    console.log(`currentValue (Βρόχους μέσω της συστοιχίας, ξεκινώντας από arr[1]): ${τρέχουσα τιμή}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`σειρά: ${παράταξη}`);
    console.log('---');
    συσσωρευτή επιστροφή + τρέχουσα τιμή;
  }
);

Παραγωγή

συσσωρευτής (Την 1η βρόχο, συσσωρευτής είναι ARR[0], τότε είναι η τιμή που επιστρέφεται του προηγούμενου βρόχου): 1
τρέχουσα τιμή (Βρόχους μέσω της συστοιχίας, ξεκινώντας από arr[1]): 2
currentIndex: 1
παράταξη: 1,2,3,4,5
---
συσσωρευτής (Την 1η βρόχο, συσσωρευτής είναι ARR[0], τότε είναι η τιμή που επιστρέφεται του προηγούμενου βρόχου): 3
τρέχουσα τιμή (Βρόχους μέσω της συστοιχίας, ξεκινώντας από arr[1]): 3
currentIndex: 2
παράταξη: 1,2,3,4,5
---
συσσωρευτής (Την 1η βρόχο, συσσωρευτής είναι ARR[0], τότε είναι η τιμή που επιστρέφεται του προηγούμενου βρόχου): 6
τρέχουσα τιμή (Βρόχους μέσω της συστοιχίας, ξεκινώντας από arr[1]): 4
currentIndex: 3
παράταξη: 1,2,3,4,5
---
συσσωρευτής (Την 1η βρόχο, συσσωρευτής είναι ARR[0], τότε είναι η τιμή που επιστρέφεται του προηγούμενου βρόχου): 10
τρέχουσα τιμή (Βρόχους μέσω της συστοιχίας, ξεκινώντας από arr[1]): 5
currentIndex: 4
παράταξη: 1,2,3,4,5
---

 

Παρέχοντας την αρχική τιμή

Καθορισμός της δεύτερης παραμέτρου (αρχική τιμή) στη λειτουργία μειώνουν θα προκαλέσει initialValue να περάσει σε όσο το επιχείρημα συσσωρευτής στον πρώτο βρόχο.

Σημειώστε ότι η τρέχουσα αξία την 1η βρόχου ξεκινά τώρα στο πρώτο στοιχείο του πίνακα

Παράδειγμα εργασίας

  ας ARR = [1,2,3,4,5];

  arr.reduce(
  (συσσωρευτής, τρέχουσα τιμή, currentIndex, παράταξη) => {
    console.log(`συσσωρευτή ( Από την 1η βρόχο, αυτή είναι η αρχική τιμή, τότε η τιμή που επιστρέφεται του προηγούμενου βρόχου): ${συσσωρευτής}`);
    console.log(`currentValue (Βρόχους μέσω της συστοιχίας, ξεκινώντας από arr[0]): ${τρέχουσα τιμή}`);
    console.log(`currentIndex: ${currentIndex}`);
    console.log(`σειρά: ${παράταξη}`);
    console.log('---');
    συσσωρευτή επιστροφή + τρέχουσα τιμή;
  }, 0
);

Παραγωγή

συσσωρευτής ( Από την 1η βρόχο, αυτή είναι η αρχική τιμή, τότε η τιμή που επιστρέφεται του προηγούμενου βρόχου): 0
τρέχουσα τιμή (Βρόχους μέσω της συστοιχίας, ξεκινώντας από arr[0]): 1
currentIndex: 0
παράταξη: 1,2,3,4,5
---
συσσωρευτής ( Από την 1η βρόχο, αυτή είναι η αρχική τιμή, τότε η τιμή που επιστρέφεται του προηγούμενου βρόχου): 1
τρέχουσα τιμή (Βρόχους μέσω της συστοιχίας, ξεκινώντας από arr[0]): 2
currentIndex: 1
παράταξη: 1,2,3,4,5
---
συσσωρευτής ( Από την 1η βρόχο, αυτή είναι η αρχική τιμή, τότε η τιμή που επιστρέφεται του προηγούμενου βρόχου): 3
τρέχουσα τιμή (Βρόχους μέσω της συστοιχίας, ξεκινώντας από arr[0]): 3
currentIndex: 2
παράταξη: 1,2,3,4,5
---
συσσωρευτής ( Από την 1η βρόχο, αυτή είναι η αρχική τιμή, τότε η τιμή που επιστρέφεται του προηγούμενου βρόχου): 6
τρέχουσα τιμή (Βρόχους μέσω της συστοιχίας, ξεκινώντας από arr[0]): 4
currentIndex: 3
παράταξη: 1,2,3,4,5
---
συσσωρευτής ( Από την 1η βρόχο, αυτή είναι η αρχική τιμή, τότε η τιμή που επιστρέφεται του προηγούμενου βρόχου): 10
τρέχουσα τιμή (Βρόχους μέσω της συστοιχίας, ξεκινώντας από arr[0]): 5
currentIndex: 4
παράταξη: 1,2,3,4,5
---