Tengo una función de mapa y también conozco el índice, en lugar de iterar todos los valores, solo necesito un valor particular en ese mapa, ¿cómo hago eso?
Result.map(function(product,index) { product.data.map(function(attribute){ if (attribute.id == fieldName) { console.log('details',detail); attribute.Qty= 1; }); });he intentado algo como esto
const list1 = Result.map(e => e.data[currIndex].Qty)[rowIndex];y mis datos simulados son
0: {data: Array(6)} 1: {data: Array(10)} 2: {data: Array(7)} data: Array(6) 0: { id: 001 Qty: 1 }, { id: 002 Qty: 2 }, { id: 003 Qty: 3 }, { id: 004 Qty: 4 }, { id: 005 Qty: 5 }, { id: 006 Qty: 6 }y necesito obtener algo como la identificación coincidente: 005 necesito actualizar la cantidad a 5
0: {data: [id: 005,Qty: 5]}Recibí un error de estructura de datos no válido y un error de prefijo octal cuando reproduje su caso de uso. Lo arreglé un poco para ilustrar cómo puede hacer coincidir su id y cambiar el valor de Qty . Puede hacer esto simplemente usando map .
Parámetros
callbackFn - Función que se llama para cada elemento de arr. Cada vez que se ejecuta callbackFn, el valor devuelto se agrega a newArray.
La función callbackFn acepta los siguientes argumentos:
element : el elemento actual que se procesa en la matriz.
indexOptional : el índice del elemento actual que se procesa en la matriz.
arrayOptional : se invocó el mapa de matriz.
thisArgOptional : valor para usar como este al ejecutar callbackFn.
Ejemplo
let data = [ {id: 0o01, Qty: 1}, {id: 0o02, Qty: 2}, {id: 0o03, Qty: 3}, {id: 0o04, Qty: 4}, {id: 0o05, Qty: 5} ]; const editData = (myData, id, newValue) => myData.map((obj, index) => { console.log('index value: ', index) if (obj.id === id) obj.Qty = newValue }) editData(data, 0o05, 555) console.log(data)Producción
index value: 0 index value: 1 index value: 2 index value: 3 index value: 4 [ { id: 1, Qty: 1 }, { id: 2, Qty: 2 }, { id: 3, Qty: 3 }, { id: 4, Qty: 4 }, { id: 5, Qty: 555 } ]