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

244
Views
¿Cuál sería la mejor manera de filtrar la gran cantidad de datos usando Javascript/react/redux?

En mi caso, datos JSON mínimos que estoy usando 90k [...] y actualmente estoy usando el método .filter. Nada está mal funcionando todo perfectamente sin ningún problema, pero solo desde el punto de vista del rendimiento, me pregunto y también necesito sugerencias, de qué manera podemos usar para mejorar la permeabilidad, ¿está de acuerdo o tenemos una mejor manera de mejorar el rendimiento?

Todas las solicitudes provenientes del backend no pueden modificarse ni dividirse.

Para la referencia, agregar datos de 5k que demora alrededor de 1 segundo.

Valoro todos los tiempos del desarrollador, también agregué un fragmento de código.

Agradezco cualquier ayuda y sugerencia.

 const load5kData = async () => { let url = 'https://jsonplaceholder.typicode.com/photos'; let obj = await (await fetch(url)).json(); const filteredValue = obj.filter(item => item.albumId == 36); console.log(filteredValue) } load5kData();
 <h1>5k data</h1>

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

0

Parece que la respuesta se devuelve con el albumId ordenado en orden ascendente. Puede hacer uso de eso usando un bucle for tradicional y un cortocircuito una vez que alcance la identificación 37.

En mi opinión, si no tiene problemas de rendimiento con solo usar el método de filtro, le diría que lo deje y no optimice en exceso.

Otra opción es que solo haya 50 elementos con albumId == 36. Podría crear su propia matriz de todos esos objetos en un archivo json. Sin embargo, obviamente pierde la oportunidad de obtener las últimas imágenes si los resultados de la API cambian alguna vez.

about 4 years ago · Juan Pablo Isaza Report

0

filter es realmente su única solución que implicará iterar sobre cada elemento.

Si necesita realizar varias búsquedas con los mismos datos, puede indexar los datos por la clave que usará, por lo que encontrar datos con un ID de albumId específico no requiere filtrado adicional, pero aún requerirá iterar sobre cada elemento cuando se indexe inicialmente.

 const indexByAlbumId = data => data.reduce((a, c) => { if (a[c.albumId] === undefined) { a[c.albumId] = [c]; } else { a[c.albumId].push(c); } return a; }, {}); const load5kData = async () => { const url = 'https://jsonplaceholder.typicode.com/photos'; const data = await (await fetch(url)).json(); const indexedData = indexByAlbumId(data); console.log('36', indexedData[36]); console.log('28', indexedData[28]); }; load5kData();

Otra optimización es que si los datos están ordenados por el índice que está buscando, puede aprovechar esto haciendo una búsqueda de divide y vencerás donde primero intenta encontrar una entrada donde el valor es lo que necesita, luego desde allí encuentra dónde el fragmento comienza/termina haciendo la misma división y conquista a la izquierda/derecha de ese elemento.

about 4 years ago · Juan Pablo Isaza Report

0

Currently using: obj.filter(item => item.albumId == 36);
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!