首页 > 解决方案 > 从服务数据中提取数据到对象

问题描述

伙计们,我必须从我对另一个对象的响应中提取数据以使用它来过滤数据,但我发现每一刻

无法设置未定义的属性“全名”

那我该怎么做呢?

我的模型:

  export interface ExportArray {
    FullName: string;
    DepartmentName
    DriverName
    CurrentCarType
    CurrentCarModelString
    CurrentModelYear
    CurrentFuelTypeEnum
    FuelContainerCapacity
    MileageFloat
  }

我的组件:

    let prepare: ExportArray[] =[];
    let index = 0;
    this.Listtrackigobjct.forEach(e=>{
prepare[index].FullName = e.FullName;
      prepare[index].DepartmentName = e.FullName;
      prepare[index].DriverName = e.DriverName;
      prepare[index].CurrentCarType = e.CurrentCarType;
      prepare[index].CurrentCarModelString = e.CurrentCarModelString;
      prepare[index].CurrentModelYear = e.CurrentModelYear;
      prepare[index].CurrentFuelTypeEnum = e.CurrentFuelTypeEnum;
      prepare[index].FuelContainerCapacity = e.FuelContainerCapacity;
      prepare[index].MileageFloat = e.MileageFloat;
      index ++;    
      });
    console.log(prepare);

标签: angular

解决方案


问题是,您还没有初始化对象。您通过索引直接访问数组元素,但数组中没有这样的元素。

您可以执行以下操作 -

this.Listtrackigobjct.forEach(e=>{
      // This is the initialization step
      const tempObj = {} as ExportArray;

      tempObj.FullName = e.FullName;
      tempObj.DepartmentName = e.FullName;
      .....
      .....
      prepare.push(tempObj);
      });

这里不需要索引变量。Push 将在数组末尾插入新对象。


推荐阅读