Solution 1 :

Try map:

The map() method creates a new array populated with the results of calling a provided function on every element in the calling array.

const projects = [...document.getElementsByClassName("nav-project")]
  .map(div => div.id);

  console.log(projects);
<div class="nav-project" id="one">a</div>
<div class="nav-project" id="two">b</div>
<div class="nav-project" id="three">c</div>
<div class="nav-project" id="four">d</div>
<div class="nav-project" id="five">e</div>

Solution 2 :

I would use Array.from() to convert a NodeList to an array of ids:

const projects = Array.from(
  document.querySelectorAll('.nav-project'),
  el => el.id
)

console.log(projects)
<div class="nav-project" id="one">a</div>
<div class="nav-project" id="two">b</div>
<div class="nav-project" id="three">c</div>
<div class="nav-project" id="four">d</div>
<div class="nav-project" id="five">e</div>

Problem :

I would like to return only the id of each div and keep them in an array :

const projects = [...document.getElementsByClassName("nav-project")];
console.log(projects);
      
//expected output : [one, two, three, four, five]
<div class="nav-project" id="one">a</div>
<div class="nav-project" id="two">b</div>
<div class="nav-project" id="three">c</div>
<div class="nav-project" id="four">d</div>
<div class="nav-project" id="five">e</div>

Comments

Comment posted by Get the ID’s of all the elements in the array

Does this answer your question?

Comment posted by Heretic Monkey

Be even better if you could find the obvious duplicate instead of answering…

Comment posted by aloisdg

@HereticMonkey well the amount of items in the other question made it a bit different though

Comment posted by downleveling error

This answer is really good because it has the additional benefit of avoiding

By