🛠 Carousel: Useful JavaScript features
    Hey ,
      
      I'm thrilled to help you learn JavaScript. Unfortunately, you've landed on a page where you cannot access with your current purchase.
    
      
      Please upgrade (use this link) access this content.
    
      I'm super eager to help you learn more!
    
    
      🛠 Carousel: Useful JavaScript features
      We can use 4 of 11 features we learned for the carousel. They are:
- Early returns
- Template literals
- Rest and Spread operators
- Useful array methods
Using array spread
You can replace Array.from with the spread operator if you wish to:
// Change these
const slides = Array.from(carousel.querySelectorAll('.carousel__slide'))
const dots = Array.from(carousel.querySelectorAll('.carousel__dot'))
// To these
const slides = [...carousel.querySelectorAll('.carousel__slide')]
const dots = [...carousel.querySelectorAll('.carousel__dot')]
Using template literals
We can use template literals to move each slide.
// Change this
contents.style.transform = 'translateX(-' + destination + ')'
// To this
contents.style.transform = `translateX(-${destination})`
Early returns
We can use early returns in dot container’s event handler.
// Change this
dotsContainer.addEventListener('click', event => {
  const dot = event.target.closest('button')
  if (dot) {
    // Stuff here
  }
})
// To this
dotsContainer.addEventListener('click', event => {
  const dot = event.target.closest('button')
  if (!dot) return
  // Stuff here
})
JavaScript array features
When we searched for targetIndex in dot container’s event handler, we used a for loop. We can replace this with findIndex.
let clickedDotIndex
for (let index = 0; index < dots.length; index++) {
  if (dots[index] === dot) {
    clickedDotIndex = index
  }
}
const clickedDotIndex = dots.findIndex(d => d === dot)
And we’re done improving the carousel.