将数组映射到数组的对象内

map an array inside object of an array

所以我有一个包含许多键的对象数组,类似这样的东西:

[
 { id: 1,
   phoneNumber: 12345,
   name: "John",
   underLicense: true
 },
 { id: 2,
   phoneNumber: 12345,
   name: "Jane",
   underLicense: false
 }
]

我希望它看起来像这样:

[
 { listPhone: [
    { number: 12345,
      underLicense: true
    },
    { number: 12345
      underLicense: false
    }
  ]
 }
]

为此,我首先执行 map(),然后将其推送到 listPhones

这是我的函数

  saveLicense() {
    const listPhone = this.toSend.map(x => {
      return {
          number: x.phoneNumber,
          underLicense: x.underLicense
        };
    });
    const savedPhones = [];
    savedPhones.push({listPhone: listPhone});
  }

问题是,有没有办法在 map() 方法中做到这一点,而不必在第二步中使用 push

您可以直接映射到 属性 值的表达式。

saveLicense() {
    const
        savedPhones = [{ listPhone: this.toSend.map(({ phoneNumber: number, underLicense }) =>
            ({ number, underLicense })
        ) }];
}

saveLicense() {
    const listPhone = this.toSend.map(x => {
      return { listPhone: {
          number: x.phoneNumber,
          underLicense: x.underLicense
          }
        };
    });
 return [listPhone]
  }

也许:

saveLicense () {
  const listPhone = this.toSend.map((x) => ({
    number: x.phoneNumber,
    underLicense: x.underLicense,
  }));
  const savedPhones = [{ listPhone }];
};