Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

159
Views
matriz de filtros de objetos: elimine objetos cuando los valores negativos y positivos coincidan

matriz de fechas -

 const WEXDateArray = WEXFile.map((r) => r.Date); const uniqueDateArray = WEXDateArray.filter((item, pos) => { return WEXDateArray.indexOf(item) == pos; });

Muestra de dátiles -

 [ '8/2/2021', '8/3/2021', '8/4/2021', '8/5/2021', '8/6/2021', '8/9/2021', '8/10/2021', '8/11/2021', '8/12/2021', '8/13/2021', '8/16/2021', '8/17/2021', '8/18/2021', '8/19/2021', '8/20/2021', '8/25/2021', '8/26/2021', '8/30/2021', '8/31/2021' ]

arreglos de objetos -

 const WEXFileArraySeparatedByDates: IWEXInterfaceArrayOfArrays = WEXFile.reduce((r, WEX) => { r[WEX.Date!] = r[WEX.Date!] || []; r[WEX.Date!].push(WEX); return r; }, Object.create(null)); [ { Date: '8/30/2021', 'Exec Qty': '15', 'Call/Put': 'P' }, { Date: '8/30/2021', 'Exec Qty': '13', 'Call/Put': 'P' }, { Date: '8/30/2021', 'Exec Qty': '8', 'Call/Put': 'P' }, { Date: '8/30/2021', 'Exec Qty': '14', 'Call/Put': 'P' }, { Date: '8/30/2021', 'Exec Qty': '12', 'Call/Put': 'P' }, { Date: '8/30/2021', 'Exec Qty': '-75', 'Call/Put': 'P' { Date: '8/30/2021', 'Exec Qty': '75', 'Call/Put': 'P' } ] [ { Date: '8/31/2021', 'Exec Qty': '4000', 'Call/Put': 'P' }, { Date: '8/31/2021', 'Exec Qty': '2000', 'Call/Put': 'P' } ]

Explicación: obtengo un archivo CSV del cliente y necesito eliminar objetos de la matriz de objetos cuando 2 filas de la misma cantidad de exec devuelven 0 cuando los suma. Lo que hice fue obtener una matriz solo con las fechas. Y creó un nuevo objeto con matrices por fechas. Lo que no pude hacer es eliminar objetos por esta condición:

si hay en Exec Qty [1, -2, 2, 4, 5, 6, -6] devuelva [1, 4, 5]

Y después de eso, podré concatenar las matrices en una nueva matriz y devolver la matriz sin [-2, 2] .

Así que aquí es donde estoy parado en este momento:

 let finalWEXArray: IWEXInterface[] = []; for (const date of uniqueDateArray) { finalWEXArray = WEXFileArraySeparatedByDates[date!]; }

¿Cómo puedo filtrar las matrices según las condiciones que mencioné anteriormente y almacenarlas en finalWEXArray

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

No es la solución más eficiente, pero hace el trabajo:

 for (let i = 0; i< arr.length; i++){ let j = arr.findIndex(x => x.Date === arr[i].Date && +x.qty + +arr[i].qty === 0); if (j !== -1) { arr.splice(j, 1) arr.splice(i, 1) i--; } }

¿Como funciona? Itera la matriz y para cada elemento verifica si hay un elemento con la misma fecha pero cantidad inversa. Si se encuentra tal elemento, elimine ambos. Solo incremente el índice si no se eliminó ningún elemento, porque de lo contrario omitiría algunos elementos en la verificación.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!