Home » How to Use JavaScript’s Array cut back() Method – Defined with Examples

How to Use JavaScript’s Array cut back() Method – Defined with Examples

by Icecream
0 comment

Hello once more, buddies! The cut back() technique is without doubt one of the most complicated Array strategies in JavaScript. So on this article, I’m going that will help you clearly see how the strategy works.

I’m additionally going to point out some examples that’ll aid you perceive how and the place you might need to use the strategy. Don’t fear! cut back() is definitely easy when you perceive the way it works.

How the cut back() Method Works

The cut back() technique obtained its title from the performance it gives, which is to iterate and “cut back” an array’s values into one worth.

The best strategy to perceive how the cut back() technique works is thru an instance, so let’s see a simple one first.

Suppose you’ve an array of objects that include a title and worth property as follows:

const gadgets = [
  { name: 'Apple', price: 1 },
  { name: 'Orange', price: 2 },
  { name: 'Mango', price: 3 },
];
An array of objects for our instance

Next, you might be tasked to get the sum of the worth property and get the overall worth. You can do that utilizing the forEach() technique as follows:

const gadgets = [
  { name: 'Apple', price: 1 },
  { name: 'Orange', price: 2 },
  { name: 'Mango', price: 3 },
];

let totalPrice = 0;

gadgets.forEach(merchandise => {
  totalPrice += merchandise.worth;
})

console.log(totalPrice); // 6
Using foreach() to iterate and sum the costs

First, we declare the totalPrice variable and assign 0 as its worth. Next, we known as the forEach() technique to iterate over the gadgets array, including the value of every merchandise to the totalPrice.

The code above works, however since we’re trying to get a single worth from the array, the cut back() technique can be extra suited to the duty.

The cut back() technique works in an identical method to the forEach() technique, with the added means to gather the results of every iteration as a single worth.

Let’s attempt to get the overall worth utilizing the cut back() technique. First, it is advisable name the cut back() technique and move two parameters to the callback perform: accumulator and merchandise.

const totalPrice = gadgets.cut back((accumulator ,merchandise) => {
  return accumulator += merchandise.worth;
}, 0)
Replacing the foreach() technique with the cut back() technique

The accumulator parameter is the one worth that shall be returned by the cut back() technique. It will include the worth returned by the callback perform in every iteration.

The merchandise parameter is just the merchandise from the array, which is able to change in every iteration identical to within the forEach() technique.

In the primary iteration, the accumulator parameter will include no matter worth you handed because the second argument of the cut back() technique. In the above case, it’s 0.

When we use the forEach() technique, we do addition assignments += to the totalPrice variable, so we declare it utilizing the let key phrase. But when utilizing the cut back() technique, you need to use the const key phrase as a result of we solely assign a price to the totalPrice as soon as.

And that’s principally how the cut back() technique works. It iterates over every factor in your array, and every iteration returns a single worth, which is the accumulator.

When the iteration is completed, the accumulator worth shall be returned from the strategy.

When to Use the cut back() Method

As proven above, the cut back() technique is advisable when it is advisable have a single worth returned from iterating over your array.

This consists of:

  • Summarizing your values right into a single worth
  • Grouping related gadgets collectively
  • Removing duplicates from an array

The single worth returned by the strategy will also be an array of objects, due to this fact containing a number of values.

You’ve seen methods to sum values within the earlier part, so let’s see some examples of grouping gadgets and eradicating duplicates subsequent.

How to Group Similar Items Together

Suppose you’ve an array of objects once more, however this time, the objects have title and class properties:

const gadgets = [
  { name: 'Apple', category: 'Fruit' },
  { name: 'Onion', category: 'Vegetable' },
  { name: 'Orange', category: 'Fruit' },
  { name: 'Lettuce', category: 'Vegetable' },
];
An array of objects to group

Now, you need to group these things based mostly on their class worth. You can use the cut back() technique and return a single object worth.

First, you name the cut back technique and move an empty object {} because the preliminary accumulator worth:

const groupedItems = gadgets.cut back((accumulator, merchandise) => {

}, {})
calling cut back() on the gadgets array. The accumulator is an object

Next, you verify if the accumulator object already has a property with the identical title because the class out of your merchandise object.

If not, then declare that property as an empty array as follows:

const class = merchandise.class;
if (!accumulator
                    
                     JavaScript 
                ) {
  accumulator
                    
                     JavaScript 
                 = []
}
Creating the class contained in the accumulator object

After that, push the merchandise.title property to the accumulator

JavaScript
property, and return the accumulator like this:

accumulator
                    
                     JavaScript 
                .push(merchandise.title);
return accumulator
Pushing gadgets with the identical class into one array

And that’s it. Now you’ve an object that teams the gadgets based mostly on the class worth:

const gadgets = [
  { name: 'Apple', category: 'Fruit' },
  { name: 'Onion', category: 'Vegetable' },
  { name: 'Orange', category: 'Fruit' },
  { name: 'Lettuce', category: 'Vegetable' },
];

const groupedItems = gadgets.cut back((accumulator, merchandise) => {
  const class = merchandise.class;
  if (!accumulator
                    
                     JavaScript 
                ) {
    accumulator
                    
                     JavaScript 
                 = []
  }
  accumulator
                    
                     JavaScript 
                .push(merchandise.title);
  return accumulator
}, {})

console.log(groupedItems);
// { Fruit: [ 'Apple', 'Orange' ], Vegetable: [ 'Onion', 'Lettuce' ] }
Grouping gadgets utilizing reducer()

Next, let’s see methods to take away duplicates utilizing the reducer() technique:

How to Remove Duplicates Using the cut back() Method

To take away duplicates utilizing the cut back() technique, it is advisable declare an array because the accumulator worth.

In every iteration, verify if the merchandise is already included within the accumulator utilizing the consists of() technique.

If the merchandise isn’t already included, push the merchandise into the accumulator. See the instance beneath:

const gadgets = [1, 2, 3, 1, 2, 3, 7, 8, 7];

const noDuplicateItems = gadgets.cut back((accumulator, merchandise) => {
  if (!accumulator.consists of(merchandise)) {
    accumulator.push(merchandise);
  }
  return accumulator;
}, []);

console.log(noDuplicateItems); 
// [ 1, 2, 3, 7, 8 ]
Removing duplicates with cut back() and consists of()

Here, you possibly can see that the cut back() technique returns an array (with none duplicates) as an alternative of a single worth.

Why the Initial Accumulator Value is Important

In all of the examples above, you’ve seen how we added an preliminary worth for the accumulator because the second argument handed to the cut back() technique.

If you don’t add the preliminary accumulator worth, then cut back() will take the primary merchandise in your array because the preliminary accumulator worth.

You can check this by logging the accumulator worth contained in the callback perform as follows:

const gadgets = [
  { name: 'Apple', price: 1 },
  { name: 'Orange', price: 2 },
  { name: 'Mango', price: 3 },
];

const totalPrice = gadgets.cut back((accumulator ,merchandise) => {
  console.log(accumulator); // log the accumulator
  return accumulator += merchandise.worth;
}, 0)
Example cut back with 0 as preliminary accumulator worth

Run the code above, and also you’ll get the next consequence:

0
1
3
The results of logging the accumulator

In the primary iteration, the accumulator makes use of the preliminary worth we handed because the second argument to the cut back() technique, which is a 0.

If you take away 0 from the code, then the output shall be:

{ title: 'Apple', worth: 1 }
[object Object]2
The results of logging the accumulator with out the preliminary worth

Because we didn’t present an preliminary worth for the accumulator, the strategy takes no matter worth we positioned at index 0 because the preliminary worth of the accumulator.

Depending on the content material of your array, the preliminary worth may be an object, an array, or a single worth. Relying on the worth of the array because the preliminary accumulator worth is taken into account dangerous follow as it will possibly result in bugs, so it’s best to all the time outline the preliminary accumulator worth.

Full cut back() Callback Parameters

One thing more earlier than we conclude the article. In all examples above, we outline 2 parameters for the callback perform, however the cut back() technique truly passes 4 arguments to the callback perform:

  • The accumulator worth
  • The merchandise worth
  • The index of the present merchandise in iteration
  • The array from which you name the strategy itself

The full syntax of the strategy is as follows:

Array.cut back((accumulator, merchandise, index, array) => {
  // TODO: Define the method for every iteration right here
}, preliminaryAccumulatorValue)
The full syntax of the cut back() technique

In most instances, you solely want the primary two parameters, however in case you in some way want the index and array values, they’re all the time obtainable.

Conclusion

And there you’ve it! At first sight, the cut back() technique seems extra difficult than different JavaScript array strategies like forEach() and filter(). But when you perceive the idea of reducer and accumulator, the strategy is definitely fairly easy.

In programming phrases, a “reducer” perform all the time returns a single worth, so the cut back() technique iterates over the values outlined in your array and reduces them right into a single worth.

Inside the callback perform of the cut back() technique, you are able to do any sort of operation it is advisable obtain a sure consequence, resembling summarizing and grouping sure values, or eradicating duplicates.

This is finished with the assistance of the “accumulator”, which shops the worth returned from the earlier iteration. You set the preliminary worth of the accumulator by passing a second argument to the cut back() technique.

If you take pleasure in this text and need to take your JavaScript abilities to the following degree, I like to recommend you try my course the JavaScript Guide right here:

nathan-js-guide-2

The course is designed that will help you study JavaScript shortly and in the suitable order. You can entry the course as many occasions as you need, at your personal tempo. The course comes with loads of workouts and options that will help you follow the information.

Here’s my promise: You will truly really feel such as you perceive what you’re doing with JavaScript.

Until subsequent time!

You may also like

Leave a Comment