Заголовки, элемент меню и классы для его пунктов:
const headers = document.querySelectorAll('section > h2');
const menu = document.querySelector('вам виднее, что тут должно быть');
const className = 'inner__menu anchor-js';
Собираем разметку:
const menuHTML = Array.from(headers, n =>
`<a class="${className}" href="#${n.parentNode.id}">${n.innerText}</a>`
).join('');
// можем добавить новое содержимое, не трогая то, что уже есть
menu.insertAdjacentHTML('beforeend', menuHTML);
// или новый контент перезапишет существующий
menu.innerHTML = menuHTML;
Или создаём элементы напрямую:
const menuElements = Array.from(headers, n =>
Object.assign(document.createElement('a'), {
className,
href: `#${n.parentNode.id}`,
text: n.textContent,
})
);
// добавляем
menu.append(...menuElements);
// перезаписываем
menu.replaceChildren(...menuElements);