[英]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.