For-loop возвращаемое значение массива

Я пытаюсь вставить URL для меню через шаблон усов. Но только первое значение возвращается для массива.

Или это неправильный метод возврата

      var main_menu_link =  ["main_dashboard.html", "#", "online_dashboard.html","index.html","#","#","#"]; 
      var url = "";
      var i;
      var url_link="";
      for(i = 0; i < main_menu_link.length; i++) {
       url += main_menu_link[i];
       return '<a href="'+ url  +'">' + text + '</a>';   
     }

CodePen работает здесь

2 ответа

Решение

Оператор возврата должен быть после цикла:

var main_menu_link =  ["main_dashboard.html", "#", "online_dashboard.html","index.html","#","#","#"]; 
var url = "";
var i;
var url_link="";
for(i = 0; i < main_menu_link.length; i++) {
  url += '<a href="'+ main_menu_link[i] +'">' + text + '</a>';  
}
return url; 

Исправьте шаблон, как показано ниже, в случае, если он может быть полезен кому-то еще

var link_details = { "link_details" :[ 
{ main_menu: "Dashboard", main_menu_link: "dashboard.html" }, 
{ main_menu: "Analytics", main_menu_link: "#" }, 
{ main_menu: "System", main_menu_link: "system.html" } 
]}; 

var template = "<ul>{{#link_details}}<li><a href =\" {{main_menu_link}}\">{{main_menu}}</a></li>{{/link_details}}‌​</ul>"; 
var html = Mustache.to_html(template, link_details); 
document.write(html) 
Другие вопросы по тегам