求助:
  某些朝代->某些名人->各种画。我以前用数组嵌套的方法 查找 取出某条件的画的,现在想将他们写成对象。
  就是:
  朝代(对象)——>人(对象)——>画(对象)
   应该怎么写呢?可以迅速找到每个画呢?

解决方案 »

  1.   

    应该是人具有朝代和画的属性吧
    function Dynasty(){

    } function peron(){
    this.dynasty;
    this.drawing;
    } function Drawing(){

    }
      

  2.   

    或者LZ是这个意思
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <SCRIPT type="text/javascript">
    var data = 
    {dynasty:
    [
    {"name":"明朝",person:
    [
    {"name":"张居正",drawing:[{"name":"画1"},{"name":"画2"}]},
    {"name":"王阳明",drawing:[{"name":"画3"},{"name":"画4"}]}
    ]},
    {"name":"清朝",person:
    [
    {"name":"康熙",drawing:[{"name":"画5"},{"name":"画6"}]},
    {"name":"乾隆",drawing:[{"name":"画7"},{"name":"画8"}]}
    ]}

    ]} function findDrawing(_dynasty,_person){
    var dynastis = data.dynasty;

    for(var i in dynastis){
    if(_dynasty == dynastis[i].name){
    var persons = dynastis[i].person
    for(var j in persons){
    var person = persons[j]
    if(_person == person.name){
    return person.drawing;
    }
    }
    }
    }
    return [];
    }
    function test(){
    var dynasty = "清朝";
    var person = "乾隆";
    var drawings = findDrawing(dynasty,person)
    if(drawings.length == 0){
    alert("没有画");
    return;
    }
    var ret = "";
    for(var i in drawings){
    ret +=drawings[i].name + " ";
    } alert(dynasty + person + "的画有:"+ret)
    }
    </script></HEAD>
    <BODY onload="test()">
    </BODY>
    </HTML>
      

  3.   

    var  朝代 = new Object();朝代["名人"] = new Array();朝代["名人"][n] = new Object();
    朝代["名人"][n].name="第N幅画";
      

  4.   

      var data = 
        {dynasty:
        [
            {"name":"明朝",person:
                                [
                                    {"name":"张居正",drawing:[{"name":"画1"},{"name":"画2"}]},
                                    {"name":"王阳明",drawing:[{"name":"画3"},{"name":"画4"}]}
                                ]},
            {"name":"清朝",person:
                                [
                                    {"name":"康熙",drawing:[{"name":"画5"},{"name":"画6"}]},
                                    {"name":"乾隆",drawing:[{"name":"画7"},{"name":"画8"}]}
                                ]}
                            
        ]}建议用这个数据格式···
      

  5.   

    你以前用数组可以完成那么现在改成对象  只要查阅下 Composite模式 就可以了
      

  6.   

    <各各朝代>
    <朝代1>
    <人1>
    <画1></画1>
    <画2></画2>
    <画3></画3>
    </人1>
    <人2>
    <画></画>
    <画></画>
    <画></画>
    </人2>
    <人3>
    <画></画>
    <画></画>
    <画></画>
    </人3>
    </朝代1>
    <朝代1>
    <人>
    <画></画>
    <画></画>
    <画></画>
    </人>
    <人>
    <画></画>
    <画></画>
    <画></画>
    </人>
    <人>
    <画></画>
    <画></画>
    <画></画>
    </人>
    </朝代1>
    </各各朝代>
    用 xml比较方便吧
    不过xml不能以中文命元素名,你换成英文的