Learn Basic JavaScript by Building a Role Playing Game - Step 121

Tell us what’s happening:

I solved this challenge with weapons[currentWeaponIndex].name,
but I originaly tried to solve it with inventory[-1].name and it returned “undefined”. I would realy appriciate it if somone could explain to me why this happend.
p.s. There’s some typo in the forum such that all the posts about step 121 are talking about a later challenge, so i couldn’t really “search for similar questions that have already been answered on the forum”

Your code so far

<!-- file: index.html -->

/* file: styles.css */

/* file: script.js */
// User Editable Region

function attack() {
  text.innerText = "The " + monsters[fighting].name + " attacks.";

}

// User Editable Region

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36

Challenge Information:

Learn Basic JavaScript by Building a Role Playing Game - Step 121

Sometimes the curriculum is updated and the step numbers change, which means it will no longer reflect the older posts in the forum.

inventory is a flat array, not an object with a .name property. Not like an array of objects like monsters.

Does inventory hold an array of objects?

negative indeces are not a thing in JS, so you can’t use -1

Thanks to everyone for all the information.
Is there a shortcut to access the last object in an array?

You would need to find the LENGTH of the array

I assume you mean array[array.length - 1] ?
I was hoping for somthing shorter.

Hope for something correct

https://www.geeksforgeeks.org/how-to-access-the-last-element-of-an-array-in-javascript/

1 Like