У вас недостаточно информации, по этому я допустил, что пары заголовок-ссылка лежат в хешах, которые в свою очередь в массиве. Если так, то можно вот так:
var menu = [
{ 'foo': 'foo.org',
'bar': 'bar.net' },
{ 'baz': 'baz.com',
'quux': 'quux.gov' }
]
function menuBuilder(obj) {
var html = [];
for (var i = 0; i < obj.length; i++) {
html.push('<ul>');
for (var prop in obj[i]) {
html.push('<li><a href="' + obj[i][prop] + '">' + prop + '</a></li>');
};
html.push('</ul>');
};
html.join('');
return html;
};
menuBuilder(menu);
Функция вернет:
<ul><li><a href="foo.org">foo</a></li><li><a href="bar.net">bar</a></li></ul><ul><li><a href="baz.com">baz</a></li><li><a href="quux.gov">quux</a></li></ul>