首页 > 解决方案 > 迭代一种类型的数组并仅复制另一种类型的另一个数组中的特定项

问题描述

在打字稿中,我有两个数组:

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

标签: arraysangulartypescript

解决方案


如果您只想分配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 中的工作代码...(看看控制台)..


推荐阅读