tengo 2 arreglos
Quiero esto:
[{name: 'Sweater', qty: 1}, {name: 'Skirt', qty: 3}, {name: 'Socks', qty: 2}]pero lo consigo
qtyList = [1, 3, 2] data = [{name: 'Sweater', qty: 1}, {name: 'Skirt', qty: 1}, {name: 'Socks', qty: 1}] let assignQty = data.map((x, id) => { qtyList.map((y, idx) => { if (idx == id) return x.qty = y }) }) console.log('assignQty', assignQty)Básicamente, está comprimiendo las 2 listas juntas, generalmente de la siguiente manera:
const qtyList = [1, 3, 2] const data = [{name: 'Sweater', qty: 1}, {name: 'Skirt', qty: 1}, {name: 'Socks', qty: 1}] const result = data.map((item,idx) => ({...item, qty: qtyList[idx]})) console.log(result);Sin usar el operador de propagación, actualice el campo requerido y luego devuelva x .
qtyList = [1, 3, 2] data = [{name: 'Sweater', qty: 1}, {name: 'Skirt', qty: 1}, {name: 'Socks', qty: 1}] var assignQty = data.map((x, id) => {x.qty=qtyList[id];return x;}) console.log('assignQty', assignQty)Este es mi enfoque a su pregunta. En su ejemplo, estaba tratando de mapear dos matrices en una. Este enfoque "recorre" la matriz de datos que contiene los objetos que desea cambiar.
Usando el índice de cada objeto, establece item.qty en el valor de qtyList[index] .
qtyList = [1, 3, 2]; data = [{ name: 'Sweater', qty: 1 }, { name: 'Skirt', qty: 1 }, { name: 'Socks', qty: 1 }]; let assignQty = data.map((item, index) => { item.qty = qtyList[index]; return item; }); console.log(assignQty)