代码之家  ›  专栏  ›  技术社区  ›  Illep

无法打印另一个对象列表中包含的对象列表

  •  0
  • Illep  · 技术社区  · 6 年前

    我的项目中有以下模型

    private name: string;
    private age: string;  
    private zooLocation: Zoo[];  
    

    动物园

    private zooname: string;
    private zooaddress: address;
    

    data 退货 Animal[] console.log() 所有可用的动物园地点。所以 Animal Zoo 位置。

    动物园 动物

    到目前为止我尝试的是:

    this.animalList = data;
    
    this.allZooLocation = this.animalList.zooLocation;
    

    this.animalList.zooLocation; 显示错误

    类型“Animal[]”上不存在属性“zooLocation”

    3 回复  |  直到 6 年前
        1
  •  2
  •   Mr Alihoseiny    6 年前

    那是因为 this.animalList zooLocation 财产。 你可以在 animalList 从这些元素的每一个元素中获取数据 Animal

    for (let animal of this.animalList) {
      console.log(animal.zooLocation);
    }
    

    此代码打印 动物定位 控制台里的每只动物。如果您想对该位置执行其他操作,可以将代码替换为 console.log .

        2
  •  0
  •   Ankit Joshi    6 年前

    animalList基本上是一个数组,而不是json。虽然这个“点”符号在JSON格式下工作,但是数组仍然需要一个指向的位置。

    你可以使用一个普通的for循环。前任:

    for(let i=0; i<animalList.length; i++){
     console.log(animalList[i].zooLocation);}
    

    for(let animal of animalList){ console.log(animal) }

        3
  •  0
  •   Dhanika    6 年前

    这是我的答案,

    public AnimalList : Animal[] = [
        {
          name : 'name1',
          age : "20",
          zooLocation : [
            { zooname : "zooname1",
              zooaddress : "zooaddress1"
            },
            { zooname : "zooname2",
              zooaddress : "zooaddress2"
            },
            { zooname : "zooname3",
              zooaddress : "zooaddress3"
            },
          ]
        },
        {
          name : 'name2',
          age : "21",
          zooLocation : [
            { zooname : "zooname4",
              zooaddress : "zooaddress4"
            },
            { zooname : "zooname5",
              zooaddress : "zooaddress5"
            }
          ]
        }
      ]
    

    在模板中,

    <div *ngFor="let list of AnimalList">
      <div>{{list.name}}</div> 
      <div *ngFor="let item of list.zooLocation">
        {{item.zooname}}
        {{item.zooaddress}} 
      </div>
    </div>
    

    结果

    name1
    zooname1 zooaddress1
    zooname2 zooaddress2
    zooname3 zooaddress3
    name2
    zooname4 zooaddress4
    zooname5 zooaddress5
    

    for(let j=0; j<this.AnimalList.length; j++){
         console.log(this.AnimalList[j].zooLocation);
    }