Мне нужно улучшить функцию ventasVendedora()
, я получаю эти три for
, но я думаю, что это можно упростить. Кроме того, я должен проверить это. Я подумал о map
или filter
, потому что это помогло бы мне иметь array
с компонентами, продаваемыми каждым продавцом для другого товара, но я даже не знаю, как его написать.
Здесь пункт и в конце мое решение:
ventasVendedora(nombre)
: получает имя продавца по параметру и возвращает общую сумму продаж, совершенных этим продавцом.
const vendedoras = ["Ada", "Grace", "Hedy", "Sheryl"];
const ventas = [
[100, 4, 2, 2019, 'Grace', 'Centro', ['Monitor GPRS 3000', 'Motherboard ASUS 1500']],
[101, 1, 1, 2019, 'Ada', 'Centro', ['Monitor GPRS 3000', 'Motherboard ASUS 1500']],
[102, 2, 1, 2019, 'Grace', 'Caballito', ['Monitor ASC 543', 'Motherboard MZI', 'HDD Toyiva']],
[103, 10, 1, 2019, 'Ada', 'Centro', ['Monitor ASC 543', 'Motherboard ASUS 1200']],
[104, 12, 1, 2019, 'Grace', 'Caballito', ['Monitor GPRS 3000', 'Motherboard ASUS 1200']],
[105, 21, 3, 2019, 'Hedy', 'Caballito', ['Monitor ASC 543', 'Motherboard ASUS 1200', 'RAM Quinston']]
];
const precios = [
['Monitor GPRS 3000', 200],
['Motherboard ASUS 1500', 120],
['Monitor ASC 543', 250],
['Motherboard ASUS 1200', 100],
['Motherboard MZI', 30],
['HDD Toyiva', 90],
['HDD Wezter Dishital', 75],
['RAM Quinston', 110],
['RAM Quinston Fury', 230]
];
const ventasVendedora = (nombre) => {
let contador = 0;
for (let i = 0; i < ventas.length; i++) {
if (ventas[i][4] == nombre) {
for (let x = 0; x < ventas.length; x++)
for (let y = 0; y < precios.length; y++) {
if (precios[y][0] == ventas[i][6][x]) {
contador += precios[y][1]
}
}
}
}
console.log(contador)
};
ventasVendedora('Ada');
Немного asГ - я ocurriГі (не, если то, что ты ищешь) отделяя каждую функциональность:
const vendedoras = ["Ada", "Grace", "Hedy", "Sheryl"];
const ventas = [
[100, 4, 2, 2019, 'Grace', 'Centro', ['Monitor GPRS 3000', 'Motherboard ASUS 1500']],
[101, 1, 1, 2019, 'Ada', 'Centro', ['Monitor GPRS 3000', 'Motherboard ASUS 1500']],
[102, 2, 1, 2019, 'Grace', 'Caballito', ['Monitor ASC 543', 'Motherboard MZI', 'HDD Toyiva']],
[103, 10, 1, 2019, 'Ada', 'Centro', ['Monitor ASC 543', 'Motherboard ASUS 1200']],
[104, 12, 1, 2019, 'Grace', 'Caballito', ['Monitor GPRS 3000', 'Motherboard ASUS 1200']],
[105, 21, 3, 2019, 'Hedy', 'Caballito', ['Monitor ASC 543', 'Motherboard ASUS 1200', 'RAM Quinston']]
];
const precios = [
['Monitor GPRS 3000', 200],
['Motherboard ASUS 1500', 120],
['Monitor ASC 543', 250],
['Motherboard ASUS 1200', 100],
['Motherboard MZI', 30],
['HDD Toyiva', 90],
['HDD Wezter Dishital', 75],
['RAM Quinston', 110],
['RAM Quinston Fury', 230]
];
// Obtenemos los productos vendidos
const productos = (nombre) => {
let _productos = [];
ventas.forEach((venta) => {
if(venta[4] == nombre) {
_productos.push(...venta[6])
}
});
return _productos;
}
// obtenemos el total vendido
const total_vendido = (productos) => {
let _total = 0;
productos.forEach((producto) => {
precios.forEach((precio) => {
if (producto == precio[0]){
_total += precio[1];
}
})
})
return _total;
}
let productos_vendidos = productos("Grace");
console.log(total_vendido(productos_vendidos));