arrays - 如何向数组中的现有对象添加新的键和值(Angular)

标签 arrays angular typescript object interface

我想将新的键和相应的值推送到已经存在的对象。订阅 WEB API 端点后返回我的对象​​。在返回的对象中,我想添加一个“QuantityOnHand”键和值。我尝试了以下操作,但是,它不是我想要的。

branchProduct: BranchProduct;
getProductByName() {

     const productName = this.addProductForm.get('product')?.value;

     const quantity = this.addProductForm.get('quantity')?.value;

     this.branchService.getProductByName(productName).subscribe((resp: any) => {
      this.branchProduct = resp;
      this.branchProduct.QuantityOnHand = quantity;
      console.log(this.branchProduct);
     })

   }

“branchProduct”接口(interface)类如下:

export interface BranchProduct {
  BranchId: number;
  ProductId: number;
  ProductTypeName: string;
  ProductName: string;
  QuantityOnHand: number;
  BaselineQuantity: number;
}

为 QuantityOnHand 属性分配值后,对象将按如下方式记录:

enter image description here

是否可以在创建对象后将 QuantityOnHand 设置为上述对象的实际附加属性?我尝试将“branchProduct”设置为数组并将数量的值插入其中,但是,我没有成功这样做。

感谢任何帮助。

最佳答案

图中显示branchProduct数据位于数组的0索引中。如果branchProduct数据始终是0索引上的一条记录,那么您可以像这样修复它。

getProductByName() {
     const productName = this.addProductForm.get('product')?.value;
     const quantity = this.addProductForm.get('quantity')?.value;
     this.branchService.getProductByName(productName).subscribe((resp: any) => {
      this.branchProduct = resp;
      this.branchProduct[0].QuantityOnHand = quantity;
      console.log(this.branchProduct);
     })

   }

否则,您需要实现一个循环来修改数据。

const branchProductArray = []
branchProductObj.map((product, index) => {
   let productObject = {... product };
    productObject.QuantityOnHand = quantity;
    branchProductArray.push(productObject)

})
console.log(branchProductArray). //will be desire result.

关于arrays - 如何向数组中的现有对象添加新的键和值(Angular),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68944739/

相关文章:

node.js - 如何通过apache连接 Node 服务器?

Angular 2 - date.getMonth 不是函数

javascript - 访问不完整数组的随机索引?

ios - 从 CGPoints 数组中获取最大值和最小值

java - 确定我们是否可以通过混合列表中的颜色来获得目标颜色

计算多维数组第一维

angular - 如何在 Angular 2.4 中使用 FormArray

angular - 如何将一组具有相同查询参数的值传递给路由器?

javascript - typescript 无法推断自定义 Hook 中的解构数组类型

typescript - 在 Typescript 中防止不适当的导入和执行项目层次结构