gpt4 book ai didi

javascript - 我如何处理大量数据 .push() 以便在 .map() 之外使用它?

转载 作者:行者123 更新时间:2023-11-30 20:38:34 26 4
gpt4 key购买 nike

此刻我遇到了一个问题。我如何在 .map() 之外推送大量数据以使用它。

我需要在 const todo = [] 中推送大量数据,并在 .map() codigoP.map 之外查看数据

我尝试使用 .promise,但我不知道当像这样推送大量数据时如何实现:

const todo = [];
let dateNow = moment();
let diferencia = 0;

codigoP.map(async (item)=> {
const listaPrecio = await models.listas_precios.findOne({
where: {
producto_id: item.id,
cliente_id: empresa.id
}
});
let precioIva = 0;
if (listaPrecio) {
precioIva = listaPrecio.iva;
}
cant += parseInt(detDevolucion.cantidadProducto);
precioTotal = detDevolucion.precio_producto * parseInt(detDevolucion.cantidadProducto);
const totalIva = precioTotal + precioIva;
total += totalIva;
totalConIva += precioTotal;
ivaTotal += precioIva;
let fechaVencimiento = moment(item.fechaVencimiento).utc().toDate();
diferencia = dateNow.diff(fechaVencimiento, 'days');
todo.push({
codigo: item.codigo,
nombre: item.nombre,
vidaUtil: diferencia,
lote: detDevolucion.lote_id,
cantidad: detDevolucion.cantidadProducto,
precio: numeral(detDevolucion.precio_producto).format('$0,0.00'),
precioTotal: numeral(precioTotal).format('$0,0.00'),
iva: numeral(precioIva).format('$0,0.00'),
totalIva: numeral(totalIva).format('$0,0.00'),
observacion: detDevolucion.observacion,
fechaVenc: dateFormat(item.fechaVencimiento, "yyyy-mm-dd")
});
console.log('todo: ', todo);// **this works, return the values**
diferencia = 0;
});
console.log('todo: ', todo); //**this return todo [], empty array, this is my problem.**

最佳答案

您可以像我们上面讨论的那样尝试这样的事情。 Map 返回一个新数组,并为每次迭代返回对象。

编辑:您可以在返回前尝试使用 Promise.all 解决 promise 。

let dateNow = moment();
let diferencia = 0;
const todo = await Promise.all(codigoP.map(async (item)=> {
const listaPrecio = models.listas_precios.findOne({
where: {
producto_id: item.id,
cliente_id: empresa.id
}
});
let precioIva = 0;
if (listaPrecio) {
precioIva = listaPrecio.iva;
}
cant += parseInt(detDevolucion.cantidadProducto);
precioTotal = detDevolucion.precio_producto * parseInt(detDevolucion.cantidadProducto);
const totalIva = precioTotal + precioIva;
total += totalIva;
totalConIva += precioTotal;
ivaTotal += precioIva;
let fechaVencimiento = moment(item.fechaVencimiento).utc().toDate();
diferencia = dateNow.diff(fechaVencimiento, 'days');
return {
codigo: item.codigo,
nombre: item.nombre,
vidaUtil: diferencia,
lote: detDevolucion.lote_id,
cantidad: detDevolucion.cantidadProducto,
precio: numeral(detDevolucion.precio_producto).format('$0,0.00'),
precioTotal: numeral(precioTotal).format('$0,0.00'),
iva: numeral(precioIva).format('$0,0.00'),
totalIva: numeral(totalIva).format('$0,0.00'),
observacion: detDevolucion.observacion,
fechaVenc: dateFormat(item.fechaVencimiento, "yyyy-mm-dd")
};
//console.log('todo: ', todo);// **this works, return the values**
//diferencia = 0;
}));
console.log('todo: ', todo);

关于javascript - 我如何处理大量数据 .push() 以便在 .map() 之外使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49544730/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com