javascript,做边

javascript, making a side

我想制作一个侧边栏,从对象结果动态创建内容 javascript

Object { Chemistry: Array[3], Maths: Array[1], Physics: Array[2] }

上面的数组中还有一些元素

我知道这不是最好的方法,但这是一个关于如何实现的想法:

var obj = {'Chemistry':['Chemistry1','Chemistry2','Chemistry3'],'Maths':['Maths1'],'Physics':['Physics1','Physics2']};

function isNumber(n) {
  return !isNaN(parseFloat(n)) && isFinite(n);
}

function ulCreator(obj){
  var menu = document.createElement("UL");
  for (var key in obj) {
      var node = document.createElement("LI");
      var textnode = document.createTextNode(isNumber(key) ? obj[key] : key);
      node.appendChild(textnode);
      
      if(Array.isArray(obj[key])){
        node.appendChild(ulCreator(obj[key]));
      }
      menu.appendChild(node);
  }
  return menu;
}

document.getElementById("main").appendChild(ulCreator(obj));
<div id="main">
</div>