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);
       });