Arrays 如何在TypeScript中将具有不同值的新属性添加到对象数组中?
例如:Arrays 如何在TypeScript中将具有不同值的新属性添加到对象数组中?,arrays,angular,typescript,Arrays,Angular,Typescript,例如: 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:
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;
}
for(让i=0;i使用计数器保存年龄值,并在每次迭代中与扩展运算符一起递增:
let counter = 20;
this.equipment = this.equipment.map(e => {
return {
...e,
age: counter += 5,
};
});
此外,由于我们使用的是typescript,因此创建一个接口来表示设备,即
现在使用以下命令定义数组:
equipment: Items[] = [
{ name: 'Duct Tape', mass: 0.5 },
{ name: 'Space Camera', mass: 20 },
{ name: 'Food', mass: 150 },
{ name: 'Oxygen Tanks', mass: 400 },
];
我正在更新我的答案,将年龄视为20到60之间生成的随机数。您可以根据需要更改最小值和最大值
equipment=[];
equipmentItems=[];
ngOnInit(){
this.equipment= [
{name: 'Duct Tape', mass: 0.5},
{name: 'Space Camera', mass: 20},
{name: 'Food', mass: 150},
{name: 'Oxygen Tanks', mass: 400},
];
this.equipmentItems=this.equipment;
this.equipmentItems.forEach((arrayItem, index)=> {
this.equipmentItems[index].age=this.generateRandomAge(20, 60);
});
}
generateRandomAge(min, max) {
return Math.floor(min + Math.random()*(max + 1 - min))
}
工作代码:
要生成无约束的随机数,请执行以下操作:
this.equipmentItems.forEach((arrayItem, index)=> {
this.equipmentItems[index].age=this.generateRandomAge(-20, 20);
});
如果年龄值之间没有关系,比如年龄是21,34,45,59…分别??谢谢!!我已经更新了我的答案。年龄的确切限制是什么。请相应地更新你的问题。如果年龄是21,34,48,17,88…我的意思是没有关系?@seek什么是年龄的适当限制?我的意思是有任何限制吗“大于或小于”之类的模拟?你能用适当的要求更新问题吗?不,没有限制。我实际上在练习一些东西,他们要求我们在数组中添加一些属性。谢谢!@Seeker也更新了我的答案,因为没有限制。”
this.equipmentItems.forEach((arrayItem, index)=> {
this.equipmentItems[index].age=this.generateRandomAge(-20, 20);
});