簡體   English   中英

遍歷 Object 屬性以動態創建 Array

[英]Iterate through Object properties to dynamically create an Array

我希望能夠通過迭代填充有模擬數據的 TypeScript 文件來打印ICar對象數組(現在只是打印到控制台)。

ICar model、 car.model.ts

export interface ICar {
    Make: string;
    Model: string;
    Year: string;
    Specifications: boolean[];
  }

模擬數據car.mock.ts

export const mockCars = {
    New: [
        {
            Make: "Honda",
            Model: "CRV",
            Year: "2021",
            Specifications: [
                true,
                true,
                false,
                true,
                false
            ]
        },
        {
            Make: "Toyota",
            Model: "Camry",
            Year: "2021",
            Specifications: [
                true,
                true,
                false,
                true,
                false
            ]
        }
    ],
    PreOwned: [
        {
            Make: "Subaru",
            Model: "Forester",
            Year: "2017",
            Specifications: [
                false,
                true,
                false,
                false,
                true
            ]
        }
    ],
    Used: [
        {
            Make: "Toyota",
            Model: "Corolla",
            Year: "2015",
            Specifications: [
                false,
                false,
                true,
                true,
                false
            ]
        },
        {
            Make: "Honda",
            Model: "CRV",
            Year: "2011",
            Specifications: [
                true,
                false,
                false,
                true,
                true
            ]
        },
        {
            Make: "Mazda",
            Model: "CX-5",
            Year: "2013",
            Specifications: [
                true,
                true,
                false,
                false,
                false
            ]
        }
    ]
}

目前,我當前的解決方案主要關注與模擬數據中的New鍵關聯的數據值:

ngOnInit() {
        console.log(this.getTestCars());
    }
    
getTestCars(): ICar[] {

        var testArray = []; 
        var testClient = mockCars.New;

        testClient.forEach(element => {
           console.log(element.Model + " " + element.Make + " " + element.Year);
           testArray.push(element);
        });

        return testArray;
    }

以及我的解決方案中控制台中的 output :

CRV Honda 2021
Camry Toyota 2021

(2) [{…}, {…}]
0: {Make: "Honda", Model: "CRV", Year: "2021", Specifications: Array(5)}
1: {Make: "Toyota", Model: "Camry", Year: "2021", Specifications: Array(5)}
length: 2
__proto__: Array(0)

我希望能夠從模擬數據中的所有鍵中獲取所有對象(在本例中,來自NewPreOwnedUsed的值)並將它們作為 ICar 對象推送到數組中,以便數組返回長度為 6 .

您可以取Object.values的 Object.values 並將其展flat

 const mockCars = { New: [ { Make: "Honda", Model: "CRV", Year: "2021", Specifications: [ true, true, false, true, false ] }, { Make: "Toyota", Model: "Camry", Year: "2021", Specifications: [ true, true, false, true, false ] } ], PreOwned: [ { Make: "Subaru", Model: "Forester", Year: "2017", Specifications: [ false, true, false, false, true ] } ], Used: [ { Make: "Toyota", Model: "Corolla", Year: "2015", Specifications: [ false, false, true, true, false ] }, { Make: "Honda", Model: "CRV", Year: "2011", Specifications: [ true, false, false, true, true ] }, { Make: "Mazda", Model: "CX-5", Year: "2013", Specifications: [ true, true, false, false, false ] } ]} console.log(Object.values(mockCars).flat());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM