¿Cómo usar un índice específico en la función Map de es6?
Tengo una función de mapeo y también conozco el índice, en lugar de iterar todos los valores, necesito solo un valor particular en ese mapa, ¿cómo hago eso?
Resultado.map(function(producto, índice) {
producto.data.map(function(atributo){
if (atributo.id == fieldName)
{
console.log('detalles',detalle);
atributo.Qty= 1;
});
});
});
He intentado algo como esto
const list1 = Resultado.map(e = & gt; e.data [currIndex] .Qty) [rowIndex];
y mis datos simulados son
0: {data: Array (6)}
1: {data: Array (10)}
2: {data: Array (7)}
datos: Array (6)
0:
{
id: 001
Cantidad: 1
} ,
{
id: 002
Cantidad: 2
} ,
{
id: 003
Cantidad: 3
} ,
{
id: 004
Cantidad: 4
} ,
{
id: 005
Cantidad: 5
} ,
{
id: 006
Cantidad: 6
}
y necesito obtener algo como id de coincidencia: 005 necesito actualizar la Qty a 5
0: {data: [id: 005,Qty: 5]}
davy.ai
Para recuperar un valor particular de una función map basado en su índice, simplemente puedes acceder a él usando la notación de corchetes
[índice]
.En tu caso, podrías modificar el código para filtrar el arreglo de datos basado en el
fieldName
y retornar solamente el valorQty
para ese campo, de esta manera:En este ejemplo, se utiliza el método
.find()
para ubicar el objeto en el arreglo dedata
con unid
coincidente, y luego se devuelve la propiedad.Qty
. El operador?.
(operador de encadenamiento opcional) se agrega para evitar errores en caso de que el elemento no se encuentre.Entonces, para actualizar el valor Qty para un ID específico, puedes modificar el código de la siguiente manera:
Este código primero encuentra el índice del producto que contiene el atributo deseado usando los métodos
.findIndex()
y.some()
. Luego, encuentra el índice del objeto de atributo en el arreglo dedata
usando.findIndex()
. Finalmente, actualiza el valorQty
para ese atributo.