示例:
equipment: object[] = [
{name: 'Duct Tape', mass: 0.5},
{name: 'Space Camera', mass: 20},
{name: 'Food', mass: 150},
{name: 'Oxygen Tanks', mass: 400},
];
我想要的对象是
equipmentItems: object[] = [
{name: 'Duct Tape', mass: 0.5 , age = 25},
{name: 'Space Camera', mass: 20 , age = 30},
{name: 'Food', mass: 150 , age = 35},
{name: 'Oxygen Tanks', mass: 400 , age = 40}
]
我知道我可以循环添加属性,例如
for(let i=0;i<equipments.length;i++){
let equipments[i].age=25;
}
但这将使所有装备的年龄增加25。有没有快速的方法来做到这一点?
最佳答案
使用计数器来保存年龄值,并在每次迭代中递增它,以及扩展运算符:
let counter = 20;
this.equipment = this.equipment.map(e => {
return {
...e,
age: counter += 5,
};
});
此外,由于我们使用 typescript 创建一个接口(interface)来表示设备,即
export interface Items {
name: string;
mass: number;
age?: number; // optional since it is added later
}
现在使用以下方法定义数组:
equipment: Items[] = [
{ name: 'Duct Tape', mass: 0.5 },
{ name: 'Space Camera', mass: 20 },
{ name: 'Food', mass: 150 },
{ name: 'Oxygen Tanks', mass: 400 },
];
关于arrays - 如何在 TypeScript 中向对象数组添加具有不同值的新属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64798623/