Arrays 尝试使用typescript将两个特定值作为键值对推送到另一个数组中

Arrays 尝试使用typescript将两个特定值作为键值对推送到另一个数组中,arrays,typescript,Arrays,Typescript,这里是新手,这是我要学习的项目。我在兜圈子,请原谅我的无知。我现在甚至不确定我想做的是可能的。我也知道可能有更好的方法来实现我的最终目标,但这就是我所拥有的 我有一个包含一些用户输入的数组。 “参与者”:[{ “姓名”:“克里斯蒂娜”, “电子邮件”:cristina@gmail", “你的人”:“理查德”, “seemail”:Richard@gmail“}]} 我想提取“name”和“youPerson”值,并将它们用作key:value对。所以名字是关键,你的人是价值 我想我可以使用for

这里是新手,这是我要学习的项目。我在兜圈子,请原谅我的无知。我现在甚至不确定我想做的是可能的。我也知道可能有更好的方法来实现我的最终目标,但这就是我所拥有的

我有一个包含一些用户输入的数组。 “参与者”:[{ “姓名”:“克里斯蒂娜”, “电子邮件”:cristina@gmail", “你的人”:“理查德”, “seemail”:Richard@gmail“}]}

我想提取“name”和“youPerson”值,并将它们用作key:value对。所以名字是关键,你的人是价值

我想我可以使用forEach,但无论我做什么,我要么得到一个未定义的数组,要么复制整个数组,而不仅仅是这两个字段

这是我目前的代码:


  participantArray = [];
  namePlusSpouseArray = [];
  
  submitParticipant() {
    this.participantArray.push(this.participantForm.value);
    console.log(this.participantArray)
    this.createNamePlusSpouseArray();                                             
  }


   createNamePlusSpouseArray() {
    
    this.participantArray.forEach(name  => {
     this.namePlusSpouseArray.push(this.participantArray[name]);
     console.log(this.namePlusSpouseArray)
    });
    }
   

不确定您是想要一个键值对的结果数组,还是想要一个object/map/dictionary/lookup of name->youPerson

假设需要包含键值对的数组,可以使用
map

this.namePlusSpouseArray = this.participantArray.map(participant => ({
   [participant.name]: participant.youPerson
});
如果要查找name->youPerson,“namePlusSpouseArray”不应该是数组,而应该只是一个对象

namePlusSpouseLookup = {};

this.participantArray.forEach(participant => {
    this.namePlusSpouseLookup[participant.name] = participant.youPerson;
});

最简单的解决方案是:

const participantArray={
“参与者”:[{“姓名”:“克里斯蒂娜”,“电子邮件”:”cristina@gmail,“你的人”:“Richard”,“Seemail”:Richard@gmail" } ] };
const createPair=参与者=>{
返回参与者.map(参与者=>
({[participant.name]:participant.yourPerson}))
}

log(createPair(participantArray.participants))