繁体   English   中英

如何将同一个对象推送到数组 N 次,但在数组中是不同的对象?

[英]How can I push the same object to an array N times but be different objects in the array?

我在下面有这个对象,其中 IMemberCard 是一个接口。

const memberCard: IMemberCard = { id: null, name: 'Member', rating: null, photoUrl: '/assets/images/user.png', type: null, eventCount: null, experienceLevel: null, years: null, certification: null, isPriority: null, memberStatus: null, receiveNotification: null};

问题- 有没有办法将这些对象中的 N 个 push() 放入数组中并使它们成为不同的对象但具有这些值?

我知道这适用于循环,但它们不是同一个对象吗?

const memberCardArray: IMemberCard[] = [];
for (let i = 0; i < this.yogaband.members; i++) {
   memberCardArray.push(memberCard);
}

如果它始终是对 memberCard 的相同引用,您可以这样做:

const memberCardArray: IMemberCard[] = [];
memberCardArray = Array.from({length: this.yogaband.members}).map(()=> memberCard);

根据您的[all the objects]外观和详细要求,您可以使用以下方法之一:

  • splice(start, deleteCount, item1, item2, itemN)如果您有单独的不同项目要添加
  • fill(value, start, end)将相同的值多次添加到数组中
  • concat(value0, value1, ... , valueN)连接多个数组 - 这里的值是数组! 注意这个方法不会修改你调用它的原始数组,而是返回一个新数组。

MDN上找到详细的参考资料。

您可以使用Array.prototype.fill()

const memberCard: IMemberCard = { id: null, name: 'Member', rating: null, photoUrl: '/assets/images/user.png', type: null, eventCount: null, experienceLevel: null, years: null, certification: null, isPriority: null, memberStatus: null, receiveNotification: null};

const getNMemberCards = (n, mc): IMemberCard[] => Array(n).fill({ ...mc })

const result: IMemberCard[] = IMemberCard(5, memberCard)

代码示例:

 const memberCard = { id: null, name: 'Member', rating: null, photoUrl: '/assets/images/user.png', type: null, eventCount: null, experienceLevel: null, years: null, certification: null, isPriority: null, memberStatus: null, receiveNotification: null}; const getNMemberCards = (n, mc) => Array(n).fill({ ...mc }) const result = getNMemberCards(5, memberCard) console.log(result)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM