arrays - 迭代一种类型的数组并仅复制另一种类型的另一个数组中的特定项
问题描述
在打字稿中,我有两个数组:
interface IFirst{
name: string;
age: number
}
interface ISecond {
nickName: string;
lastName: string;
}
myFirstArray: IFirst[];
mySecondArray: ISecond[];
myFirstArray = [
{name: 'tim', age: 20},
{name: 'jim', age: 30}
]
如何遍历 myFirstArray 并将所有名称设置为 mySecondArray 中的 nickNames?就像是:
this.myFirstArray.forEach((element: IFirst) => {
this.mySecondArray.push({nickName = element.name});
})
解决方案
如果您只想分配nickname
,那么您需要在界面中将 lastname 设为可选,ISecond
并且lastName?: string
界面将是,
interface ISecond {
nickName: string;
lastName?: string;
}
您可以使用this.myFirstArray.map()方法并将昵称值分配为喜欢的myFirstArray
元素名称,this.mySecondArray
this.mySecondArray = this.myFirstArray.map((element: IFirst) => {
return { nickName: element.name };
});
console.log("this.mySecondArray ", this.mySecondArray);
Stackblitz 中的工作代码...(看看控制台)..
推荐阅读
- javascript - 将属性名称与其在数组中的值匹配;
- python - 如何在不写入磁盘的情况下解压缩?
- python - Python:删除具有相同元素但顺序不同的列表
- python - 使用分解或分类将数字转换为因子有什么区别?
- python - 证书验证失败:证书已过期 (_ssl.c:1123),api.covid19api.com
- mysql - 为什么 LIMIT 1 在这种情况下会导致 MySQL 超时?
- amazon-web-services - 有没有其他方法可以在不使用 ELB 的情况下跨区域连接 VPC 端点?
- c# - 检测到可能的对象循环。这可能是由于循环或对象深度大于最大允许深度 32
- html - 谷歌图标不是二次的,代码不起作用
- python - 警告:自定义遮罩层需要配置,并且在 keras 中保存模型时必须覆盖