Javascriptで挫折

JSONをULで表現して楽々把握という車輪の再発明をしようとして、途中で挫折した。

挫折したポイントを列挙すると、

  • jQueryのmapが使いずらい。配列を返すと、勝手に結合される
  • 配列とオブジェクトを区別したいのに、区別する方法が思いつかない

やりたかったことを疑似コードで書くと、次のようになる。

function createTree(json){
  switch(json){
  case 配列:
    return json.map(function(value){
      if(valueがハッシュか配列){
        return $ul(createTree(value));
      }else{
        return $li(value);
      }
    });
    break;
  case ハッシュ:
    return json.map(function(key,value){
      if(valueがハッシュか配列){
        return $ul(createTree(value));
      }else{
        return $li(key);
      }
    });
    break;
  }
}