Advertisement
ADL_Rodrigo_Silva

Untitled

Aug 2nd, 2022
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Propiedad intelectual:  Hay otras empresas que nos han copiado esta prueba, no aceptes imitaciones, exige el original xD
  2. // No realizar la prueba en repl.it al hacerlo su respuesta queda disponible para otros postulantes, tampoco subirla a repositorios de github públicos
  3.  
  4. // Sección de declaraciones, NO EDITAR
  5.  
  6. // Responsables de los cuarteles
  7.  
  8. const paddockManagers = [
  9.     { id: 1, taxNumber: '132254524', name: 'JUAN TAPIA BURGOS'},
  10.     { id: 2, taxNumber: '143618668', name: 'EFRAIN SOTO VERA'},
  11.     { id: 3, taxNumber: '78903228', name: 'CARLOS PEREZ GONZALEZ'},
  12.     { id: 4, taxNumber: '176812737', name: 'ANDRES VIÑALES CIENFUEGOS'},
  13.     { id: 5, taxNumber: '216352696', name: 'OSCAR PEREZ ZUÑIGA'},
  14.     { id: 6, taxNumber: '78684747', name: 'JOAQUIN ANDRADE SANDOVAL' }
  15.   ];
  16.    
  17.     // Tipo de cuartel, en el cual se utiliza el tipo de producto plantado
  18.     const paddockType = [
  19.       { id: 1, name: 'PALTOS' },
  20.       { id: 2, name: 'AVELLANOS' },
  21.       { id: 3, name: 'CEREZAS' },
  22.       { id: 4, name: 'NOGALES' },
  23.     ]
  24.    
  25.  
  26.     // Un paddock representa un cuartel de un campo (Entiéndase también como potrero o parcela), el área está representada en m2, harvestYear es el año en el que se sembró el cuartel
  27.     const paddocks = [
  28.       { paddockManagerId: 6, farmId: 1, paddockTypeId: 1, harvestYear: 2019, area: 1200 },
  29.       { paddockManagerId: 1, farmId: 3, paddockTypeId: 4, harvestYear: 2019, area: 500 },
  30.       { paddockManagerId: 5, farmId: 3, paddockTypeId: 2, harvestYear: 2020, area: 20000 },
  31.       { paddockManagerId: 2, farmId: 2, paddockTypeId: 3, harvestYear: 2021, area: 8401},
  32.       { paddockManagerId: 3, farmId: 1, paddockTypeId: 1, harvestYear: 2020, area: 2877 },
  33.       { paddockManagerId: 5, farmId: 2, paddockTypeId: 2, harvestYear: 2017, area: 15902 },
  34.       { paddockManagerId: 3, farmId: 3, paddockTypeId: 2, harvestYear: 2018, area: 1736 },
  35.       { paddockManagerId: 2, farmId: 3, paddockTypeId: 3, harvestYear: 2020, area: 2965 },
  36.       { paddockManagerId: 4, farmId: 3, paddockTypeId: 4, harvestYear: 2018, area: 1651 },
  37.       { paddockManagerId: 5, farmId: 1, paddockTypeId: 1, harvestYear: 2018, area: 700 },
  38.       { paddockManagerId: 1, farmId: 2, paddockTypeId: 1, harvestYear: 2019, area: 7956 },
  39.       { paddockManagerId: 5, farmId: 3, paddockTypeId: 2, harvestYear: 2020, area: 3745 },
  40.       { paddockManagerId: 6, farmId: 1, paddockTypeId: 3, harvestYear: 2021, area: 11362 },
  41.       { paddockManagerId: 2, farmId: 3, paddockTypeId: 3, harvestYear: 2021, area: 300 },
  42.       { paddockManagerId: 3, farmId: 2, paddockTypeId: 2, harvestYear: 2020, area: 19188 },
  43.       { paddockManagerId: 3, farmId: 1, paddockTypeId: 1, harvestYear: 2019, area: 17137 },
  44.       { paddockManagerId: 4, farmId: 3, paddockTypeId: 2, harvestYear: 2020, area: 100 },
  45.       { paddockManagerId: 2, farmId: 1, paddockTypeId: 3, harvestYear: 2019, area: 11845 },
  46.       { paddockManagerId: 5, farmId: 2, paddockTypeId: 1, harvestYear: 2018, area: 15969 },
  47.       { paddockManagerId: 1, farmId: 3, paddockTypeId: 1, harvestYear: 2029, area: 10420 },
  48.       { paddockManagerId: 5, farmId: 2, paddockTypeId: 3, harvestYear: 2010, area: 3200 },
  49.       { paddockManagerId: 6, farmId: 1, paddockTypeId: 2, harvestYear: 2012, area: 10587 },
  50.       { paddockManagerId: 2, farmId: 2, paddockTypeId: 2, harvestYear: 2018, area: 16750 }
  51.     ];
  52.  
  53.  
  54.     const farms = [
  55.       { id: 1, name: 'AGRICOLA SANTA ANA' },
  56.       { id: 2, name: 'VINA SANTA PAULA' },
  57.       { id: 3, name: 'FORESTAL Y AGRICOLA LO ENCINA' }
  58.     ];
  59.  
  60.  
  61.   // **********************************************************
  62.   // **********************************************************
  63.   // **********************************************************
  64.  
  65.    function ordenarTotales(x,y) {
  66.     if (x.totalAreaM2 > y.totalAreaM2) { return -1;}
  67.     if (x.totalAreaM2 < y.totalAreaM2) {return 1;}
  68.     return 0;
  69.    }
  70.  
  71.   // 3 Arreglo con los nombres de los administradores, ordenados decrecientemente por la suma TOTAL de hectáreas que administran.
  72.   function sortFarmManagerByAdminArea() {
  73.  
  74.     let arregloManagerTotal = [];
  75.  
  76.     for (let i=0;i<paddockManagers.length;i++) {
  77.         let sumaTotalPorManager = 0;
  78.  
  79.         for (let j=0;j<paddocks.length;j++) {
  80.            
  81.             if (paddockManagers[i].id==paddocks[j].paddockManagerId) {
  82.                 sumaTotalPorManager += paddocks[j].area;
  83.             }
  84.  
  85.         }
  86.         let objetoManagerTotalM2 = {
  87.             id: paddockManagers[i].id,
  88.             nombre: paddockManagers[i].name,
  89.             totalAreaM2: sumaTotalPorManager
  90.         }
  91.  
  92.         arregloManagerTotal.push(objetoManagerTotalM2);
  93.         arregloManagerTotal.sort(ordenarTotales);
  94.  
  95.     }
  96.  
  97.         return arregloManagerTotal;
  98.   }
  99.  
  100.   //console.log(sortFarmManagerByAdminArea());
  101.  
  102.   // *****************************************
  103.   // ************* PREGUNTA 4 ****************
  104.   // *****************************************
  105.  
  106.  // 4 Objeto en que las claves sean los nombres de los campos y los valores un arreglo con los ruts de sus administradores ordenados alfabéticamente por nombre.
  107.  
  108.  function farmManagerNames() {
  109.    
  110.     let objetoFarmJardineros = {};
  111.  
  112.     for (let i=0;i<farms.length;i++) {
  113.         let arregloJardinero = [];
  114.         for (let j=0;j<paddocks.length;j++) {
  115.  
  116.             if (farms[i].id == paddocks[j].farmId) {
  117.                 let jardineroId = paddocks[j].paddockManagerId;
  118.                 //console.log("jardineroId", jardineroId);
  119.                 let jardineraRut = paddockManagers[jardineroId-1].taxNumber;
  120.                 console.log("jardineraRut", jardineraRut);
  121.                 arregloJardinero.push(jardineraRut);
  122.             }
  123.  
  124.         }
  125.         let farm = farms[i].name;
  126.         let arregloJardineroSinRepeticiones = [...new Set(arregloJardinero)];
  127.         objetoFarmJardineros[farm] = arregloJardineroSinRepeticiones;
  128.        
  129.     }
  130.     return objetoFarmJardineros;
  131.  }
  132.  
  133.  console.log(farmManagerNames());
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement