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

145
Vistas
Filtra algunos valores de gran matriz en Javascript

Obtuve una matriz de nuestro servidor que contiene 2400 objetos (el tamaño total es de aproximadamente 7 MB) y quiero filtrar algunos de los primeros valores en ella. En este momento estoy usando una combinación de filter y método de slice :

 const keyword = 'whatever word'; const recommendList =bigArray.filter(item => item.name.includes(keyword)).slice(0, 5);

Lo que sé es que el método de filter itera todo el elemento en la matriz y creo que puede afectar el rendimiento de mi aplicación (React Native) debido a su gran cantidad de datos. Entonces, ¿hay algún enfoque para filtrar la matriz por algunos valores, sin iterar todos los elementos?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

const keyword = 'whatever word'; const recommendList = []; for (let i=0; i<bigArray.length; i++) { if ( recommendList.length >= 5) break; const item = bigArray[i]; if (item.name.includes(keyword)) recommendList.push(item); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Si simplemente desea romper (detener) el ciclo cuando encuentre el quinto elemento, puede hacer lo siguiente:

 const keyword = 'v'; const bigArray = ['a','v','a','v','a','v','a','v','a','v','a','v','a','v','a','v','a','v']; const recommendList = []; for (let i=0; i<bigArray.length; i++) { // loop till you reach end of big array index if (recommendList.length == 5) // if length is 5 this will break the loop { break; } if (bigArray[i].includes(keyword)) { recommendList.push(bigArray[i]); // add if you find } } console.log(recommendList);

Si no quiere usar la operación lambda, simplemente puede usar, algunos, encontrar, etc., que solo funcionan hasta que devuelven la primera respuesta como verdadera

 const bigArray = [{ "name": "a" }, { "name": "v" }, { "name": "a" }, { "name": "v" }, { "name": "a" }, { "name": "v" }, { "name": "a" }, { "name": "v" }, { "name": "a" }, { "name": "v" }, { "name": "a" }, { "name": "v" }, { "name": "a" }, { "name": "v" }, { "name": "a" }, { "name": "v" }, { "name": "a" }, { "name": "v" } ]; const keyword = 'v'; const recommendList = []; // some operator only iterates till its condition returns true // so if we get 5 recommended list before the bigArray end we return true and stop the iteration. bigArray.some(obj => { if (obj.name.includes(keyword)) { recommendList.push(obj) } return recommendList.length === 5; // return true if 5 values are found, that will terminate the iteration }) console.log(recommendList);

about 4 years ago · Juan Pablo Isaza Denunciar

0

El enfoque más eficiente es procesar la matriz como una secuencia iterable.

El siguiente ejemplo se basa en la biblioteca iter-ops :

 import {pipe, filter, take} from 'iter-ops'; const i = pipe( bigArray, filter(item => item.name.includes(keyword)), take(5) ); console.log('matches:', [...i]);

De esta manera, no estará iterando todo ni una sola vez, se detendrá justo cuando se encuentren las primeras 5 coincidencias.

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