Tengo este objeto a continuación, donde IMemberCard es una interfaz.
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};Pregunta : ¿Hay alguna manera de empujar () N de estos objetos en la matriz y convertirlos en objetos diferentes pero con estos valores?
Sé que esto funciona con un bucle, pero ¿no son el mismo objeto?
const memberCardArray: IMemberCard[] = []; for (let i = 0; i < this.yogaband.members; i++) { memberCardArray.push(memberCard); }si siempre es la misma referencia a MemberCard, puede hacer esto:
const memberCardArray: IMemberCard[] = []; memberCardArray = Array.from({length: this.yogaband.members}).map(()=> memberCard);Dependiendo de cómo se vean [all the objects] y cuáles sean los requisitos detallados, podría usar uno de estos métodos:
splice(start, deleteCount, item1, item2, itemN) si tiene diferentes elementos individuales para agregarfill(value, start, end) para agregar el mismo valor varias veces a la matrizconcat(value0, value1, ... , valueN) para concatenar múltiples arreglos - ¡los valores aquí son arreglos! Tenga cuidado de que este método no modifique la matriz original desde donde lo llama, sino que devuelva una nueva matriz.Encuentre una referencia detallada en el MDN .
Puedes usar 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)Ejemplo de código:
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)