首页 > 解决方案 > 从另一个填充和排列

问题描述

我是角度和打字稿的新手,我有一个问题。

我有一个我创建的数组,我想从另一个数组中实现属性和值,但是当我尝试这样做时,数组长度保持为一,例如我想根据值添加属性longueur数量从第二个数组,但这是我得到的:

需要实现的数组

我在数组上做了一个 forEach 来获取我想在数组中实现的元素,但似乎不起作用(也许我没有以正确的方式做)

用 longueur 和数量填充另一个的数组

所以基本上,我的数组长度应该与填充它的数组长度相同(第一张图片中的数组长度应该为 22,每个索引都具有来自另一个数组的longueurquantity)。

这是我的代码示例:

组件.ts:

quotDetails: any;
arrayWithValues: Array<any>;
copy: any;



initQuot() {
    this.service.checkExistQuot().subscribe(res => {
      this.quotArray = res;
      this.quotDetails = res.quotation.quotationdetail;
      this.arrayWithValues = new Array<any>(['longueur','quantity']);
      this.quotDetails.forEach((myArray, index) => {
        for (var i = 0; i < this.arrayWithValues.length; i++) {
          console.log(this.quotDetails)
          this.arrayWithValues[i].longueur = myArray.longueur;

        }console.log(this.arrayWithValues)
      })
    })
  }

如果有人可以帮助我找到答案并解释我在哪里做错了,我将不胜感激,在此先感谢您!

标签: arraysangulartypescript

解决方案


您可以使用Array.map()Object Destructuring为您的目的

this.arrayWithValues=this.quotDetails.map( ({ longueur,quantity }) => ({ longueur,quantity }))

例子:

let quotDetails=[
{
  longeur:1,
  quantity:1,
  id:1,
  quotationId:49,
  totalFurniture:"123"
},
{
  longeur:3,
  quantity:5,
  id:2,
  quotationId:47,
  totalFurniture:"323"
},
{
  longeur:5,
  quantity:0,
  id:3,
  quotationId:48,
  totalFurniture:"23"
}
]
console.log(quotDetails.map( ({longeur,quantity})=> ({longeur,quantity})))
.as-console-wrapper { max-height: 100% !important; top: 0; }


推荐阅读