[英]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)
我希望能夠從模擬數據中的所有鍵中獲取所有對象(在本例中,來自New
、 PreOwned
、 Used
的值)並將它們作為 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.