arrays - 从另一个填充和排列
问题描述
我是角度和打字稿的新手,我有一个问题。
我有一个我创建的数组,我想从另一个数组中实现属性和值,但是当我尝试这样做时,数组长度保持为一,例如我想根据值添加属性longueur和数量从第二个数组,但这是我得到的:
我在数组上做了一个 forEach 来获取我想在数组中实现的元素,但似乎不起作用(也许我没有以正确的方式做)
所以基本上,我的数组长度应该与填充它的数组长度相同(第一张图片中的数组长度应该为 22,每个索引都具有来自另一个数组的longueur和quantity)。
这是我的代码示例:
组件.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)
})
})
}
如果有人可以帮助我找到答案并解释我在哪里做错了,我将不胜感激,在此先感谢您!
解决方案
您可以使用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; }
推荐阅读
- asp.net - 安装 Asp.net 核心运行时无法在 ubuntu linux 操作系统上运行
- r - 在R中的for循环中将列表作为变量名输出
- arrays - 角度循环json对象和过滤数据
- c - 外部:找不到命令
- python - 如何在使用 systemd 服务关闭之前使 python 脚本显示图像?
- python - 使用熊猫中的分层数据获取列中的值计数
- python - 到目前为止,将 daily_volume 添加到数据框 pandas
- spring-security - Spring 安全 webflux 中的 AuthenticationManger
- angular - 如何正确使用 NGRX 路由器?
- wso2 - 带有 SAML SSO 的 WSO2AM - 无法创建应用程序密钥