HTML Academy
Writing to an array by index
Arrays14/30
Back to the list of tasks
  • 1. Little Muffin and Big Data
  • 2. Average value
  • 3. Finishing the traffic analyzer
  • 4. New data
  • 5. A lot of data? An array!
  • 6. Reading from an array using index
  • 7. Variable as index
  • 8. Array length
  • 9. Let’s hit arrays with loops!
  • 10. Summation in the loop
  • 11. Finishing refactoring
  • 12. One small analytical investigation
  • 13. Writing to an array by index
  • 14. The murderer is a butler!
  • 15. Summary of “Arrays”. Part 1
  • 16. Fifth program: Beginner decryptor
  • 17. Vague suspicions
  • 18. Swapping the elements
  • 19. Looking for the minimum element
  • 20. The minimum element is found!
  • 21. Starting sorting
  • 22. Continue sorting
  • 23. Finish sorting
  • 24. Testing the sorting
  • 25. Median of an odd number of elements
  • 26. Median of an even number of elements
  • 27. Green light
  • 28. The murderer is the butler, again!
  • 29. Summary of “Arrays”. Part 2
  • 30. Sixth program: Long jump records
Summary of “Arrays”. Part 1
  • Sign up
  • Log in

Loading…
Everything will be ready in few seconds

  • Theory
  • Theory
  • Comments

The murderer is a butler!

Now we started to see a bigger picture.

Now let’s experiment with the threshold for filtering bad days. We might be able to reveal some trend here.

Variable minUsers is responsible for the sensitivity threshold of the bad day filter. Now the days with traffic by 100 people less than expected are considered bad. By changing the amount of the subtracted value, we can adjust the sensitivity.

// Sensitivity lower, more bad days in the array
var minUsers = expectedUsers - 100;

// Sensitivity higher, less bad days in the array
var minUsers = expectedUsers - 200;

Now try to dig something up.

Comments

  • script.js
JavaScript
var expectedUsers = 1000; var usersByDay = [817, 1370, 752, 1247, 681, 1120, 915, 1281, 875, 1341, 757, 610, 812, 1170, 769, 1261, 845, 1289, 515, 1247, 845, 1311, 741, 1239, 812, 638, 877, 1242, 1159, 1372]; // Drawing the traffic graph muffin.plot(usersByDay, expectedUsers); // Summarizing traffic and analyzing the dips var totalUsers = 0; var minUsers = expectedUsers - 100; var badDays = []; for (var i = 0; i <= usersByDay.length - 1; i++) { totalUsers += usersByDay[i]; if (usersByDay[i] < minUsers) { badDays[i] = expectedUsers - usersByDay[i]; } else { badDays[i] = 0; } } muffin.plot(badDays, 100); // Calculating the average traffic value var averageUsers = totalUsers / usersByDay.length; console.log('Average traffic: ' + averageUsers); if (averageUsers > expectedUsers) { console.log('Traffic is amazing. Keep up the good work!'); } else { console.log('Traffic is so-so. You need to try harder!'); }

What didn’t you like in this task?

Thanks! We’ll fix everything at once!

Console

The code has changed, click “Run” or turn autorun on.

Result

Goalscompleted

Let’s configure a filter of bad days to find the true cause of the problem.

  1. Decrease the minimum number of users by 100 more people.
  2. And by 100 more!

Cookies ∙ Privacy ∙ License Agreement ∙ About ∙ Contacts ∙ © HTML Academy OÜ, 2019−2025

VISAMastercard

Log in

or

Forgot your password?

Sign up

Sign up

or
Log in

Restore access

Have you forgotten your password or lost access to your profile? Enter your email connected to your profile and we will send you a link to restore access.

Forgot to connect your email to the profile? Email us and we’ll help.