Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

167
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda