Smart-practice introduction to javascript

hi, there

can somebody help to resolve this exercice

Print the number and title for each value in titles. Make sure that the first in the list is 1, not 0.

1. The Philosopher's Stone
2. The Chamber of Secrets
3. The Prisoner of Azkaban
// and so on...

titles = ['The Philosopher\'s Stone', 'The Chamber of Secrets', 'The Prisoner of Azkaban', 'The Goblet of Fire', 'The Order of the Phoenix', 'The Half-Blood Prince', 'The Deathly Hallows'];

for(let key in titles){
  console.log(`${key} ${titles[key]}`)
}

0 The Philosopher's Stone
1 The Chamber of Secrets
2 The Prisoner of Azkaban
3 The Goblet of Fire
4 The Order of the Phoenix

Can you provide some more context? For example, do you have to use a for … in loop? Or can you use a simple for loop?

I try all of loop I didn’t the resolved solution

in is used to iterate through the properties of an object:

const book = {
   'book': 'The Chamber of Secrets',
   'character': 'Harry Potter',
   'location': 'Hogwarts'
}
for (let key in book){
  console.log(`${key}: ${book[key]}`);
}

use of instead of in to iterate through the values of an array (or any iterable)

for (let value of titles) { 
  console.log(value);
}

Although if you want numbers related to the index, you may want to use a regular for-loop, as mentioned by @taylorsabbag

const words = ["zero", "one", "two", "three"];
for (let i = 0; i < words.length; i++) {
  console.log(`${i}. ${words[i]}`); 
}

You may need to include some math if you want numbers that are not exactly the same as the index, but are related to it.

const words = ["two", "four", "six", "eight"];
for (let i = 0; i < words.length; i++) {
  console.log(`${(i + 1) * 2} = ${words[i]}`);
}