Here is my code:
let purchasesInfoArray = []
console.log('buyersInfo', buyersInfo)
buyersInfo.forEach((runner) => {
console.log('runner', runner)
let purchaseInfo = allPurchase
let purchaseFunction = {}
counter = counter + 1;
console.log('counter é:', counter)
delete purchaseInfo.friends
purchaseInfo.priceCents = runner.price
purchaseInfo.totalTaxPaid = 600
purchaseInfo.iuguTaxPaid = 198
purchaseInfo.kmaisTaxPaid = 402
purchaseInfo.status = 'paid'
purchaseInfo.runnerCpf = runner.runnerCpf
purchaseInfo.modality = runner.modality
purchaseInfo.sex = runner.sex
purchaseInfo.age = runner.age
purchaseInfo.birth = runner.birth
purchaseInfo.buyerName = runner.buyerName
console.log('número de corredor é:', (oldCounter + counter))
purchaseInfo.runnerNumber = (oldCounter + counter)
purchasesInfoArray.push(purchaseInfo)
console.log('purchase info:', purchaseInfo)
})
console.log(purchasesInfoArray)
Why my purchasesInfoArray is just populating with the last value??
My buyersInfo are:
[{ age: 25,
birth: '15/07/1994',
buyerName: 'Romário 2',
kit: 'Básico',
modality: 'Caminhada',
price: 60,
runnerCpf: '012.499.862-32',
sex: 'man' },
{ age: 25,
birth: '14/07/1994',
buyerName: 'Romário 1',
kit: 'Básico',
modality: '5 KM',
price: 60,
runnerCpf: '012.499.862-30',
sex: 'man' }]
My purchasesInfoArray is returning two objects with the last object from array.
allPurchase? Every index in the array is referencing that object. You could clone it for each index something likelet purchaseInfo = { ...allPurchase }should work