Arrays 迭代一种类型的数组,并仅复制另一种类型的数组中的特定项
在typescript中,我有两个数组:Arrays 迭代一种类型的数组,并仅复制另一种类型的数组中的特定项,arrays,angular,typescript,Arrays,Angular,Typescript,在typescript中,我有两个数组: interface IFirst{ name: string; age: number } interface ISecond { nickName: string; lastName: string; } myFirstArray: IFirst[]; mySecondArray: ISecond[]; myFirstArray = [ {name: 'tim', age: 20}, {nam
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中将所有名称设置为昵称?
比如:
this.myFirstArray.forEach((element: IFirst) => {
this.mySecondArray.push({nickName = element.name});
})
您应该初始化第二个数组:
mySecondArray: ISecond[] = [];
然后推送元素:
this.myFirstArray.forEach((element: IFirst) => {
this.mySecondArray.push({nickName: element.name, lastName: ''});
})
这里有
mySecondArray
是数组ISecond
类型。因此,无论何时您想要在其中指定值,您都应该指定对象的两个属性
如下-
this.myFirstArray.map((element: IFirst) => {
this.mySecondArray.push({nickName = element.name, lastName: ''});
})
您可以使用
map
方法:
this.myFirstArray = [
{name: 'tim', age: 20},
{name: 'jim', age: 30}
];
this.mySecondArray = this.myFirstArray.map(({name, age})=> <ISecond><any>{
nickname: name,
lastName: ''
});
console.log(this.mySecondArray);
this.myFirstArray=[
{姓名:'tim',年龄:20},
{姓名:“吉姆”,年龄:30}
];
this.mySecondArray=this.myFirstArray.map({name,age})=>{
昵称:姓名,
姓氏:“”
});
log(this.mySecondArray);
如果您只想分配昵称
,那么您需要在ISecond
界面中将lastname设置为可选,如lastname?:字符串
和接口将为
interface ISecond {
nickName: string;
lastName?: string;
}
您可以使用方法并将昵称值指定为myFirstArray
元素名,例如
this.mySecondArray = this.myFirstArray.map((element: IFirst) => {
return { nickName: element.name };
});
console.log("this.mySecondArray ", this.mySecondArray);
(看看控制台)
好的,谢谢,我理解。这不是我解决这个问题的重点,所以我忘了写它,它结合了
Maniraj Murugan
和porgo
答案,真是太好了。我不确定你想要什么。预期的输出是什么?谢谢,就是这样。虽然我使用了map