Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript JavaScript Loops, Arrays and Objects Tracking Multiple Items with Arrays Removing Items from an Array

How is the shipping variable undeclared?

.

script.js
var orderQueue = ['1XT567437','1U7857317','1I9222528'];

var shipping ;

orderQueue.shift();

var shipping = orderQueue.shift([0]);
index.html
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JavaScript Loops</title>
</head>
<body>
<script src="script.js"></script>
</body>
</html>

1 Answer

Hi Max,

The steps below will help get to the answer:

1) The shift method always removes the first item in the array, it doesn't take an argument, so no need for the [0].

2) By calling the shift method on the array, you will remove the first item in the array. Then on the last line when you call it again, this time you will be storing the value removed, but it will be the 2nd item in the array.

3) Lastly you only need to declare the shipping var once.

The code below will pass the challenge, hopefully the steps above help explain why this works.

var orderQueue = ['1XT567437','1U7857317','1I9222528'];
var shipping = orderQueue.shift();

The MDN docs have further examples of how this works: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift

Just let me know if you have any questions.