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

231
Views
¿Cómo puedo buscar solo en object.keys específicos en una matriz en Javascript?

Tengo la siguiente matriz:

 arr = [ { id: '1', name: 'Something', code: 'A33', number: '67', house: 'St55' }, { id: '2', name: 'Another', code: '55', number: '004', house: 'ES' }, { id: '3', name: 'One more', code: 'DAE', number: '003', house: 'R5' }, ];

Estoy usando la función a continuación ( fuente ) para una barra de búsqueda para buscar todos los campos de una matriz de objetos ( arr ) depende de las entradas del usuario ( value ):

 function findInValues(arr, value) { value = String(value).toLowerCase(); return arr.filter(o => Object.entries(o).some(entry => String(entry[1]).toLowerCase().includes(value) ) ); }

Pero para resolver mi caso, la función solo puede buscar en el name de las claves y la house , la búsqueda debe ignorar la id , code y number .

Por ejemplo:

 value = 55 Result = [ { id: '1', name: 'Something', code: 'A33', number: '67', house: 'St55' } ];

¿Qué debo hacer en mi caso?

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

0

Puede desestructurar las claves id , code y number que desea ignorar del objeto que está filtrando y luego agarrar el objeto restante sin estas propiedades usando la sintaxis rest ...o . Luego puede usar el mismo código que está usando actualmente para buscar el objeto o . Tenga en cuenta que a continuación, también he cambiado Object.entries() para que sea solo Object.values() ya que su código no usa la clave de la matriz de entrada:

 const arr = [ { id: '1', name: 'Something', code: 'A33', number: '67', house: 'St55' }, { id: '2', name: 'Another', code: '55', number: '004', house: 'ES' }, { id: '3', name: 'One more', code: 'DAE', number: '003', house: 'R5' }, ]; function findInValues(arr, value) { value = String(value).toLowerCase(); return arr.filter(({id, code, number, ...o}) => Object.values(o).some(val => String(val).toLowerCase().includes(value) ) ); } console.log(findInValues(arr, 55));

De lo contrario, si conoce las claves que desea buscar (es decir, name y house ), puede verificarlas explícitamente:

 const arr = [ { id: '1', name: 'Something', code: 'A33', number: '67', house: 'St55' }, { id: '2', name: 'Another', code: '55', number: '004', house: 'ES' }, { id: '3', name: 'One more', code: 'DAE', number: '003', house: 'R5' }, ]; function findInValues(arr, value) { value = String(value).toLowerCase(); const search = ['name', 'house']; return arr.filter(o => search.some(key => o[key].toLowerCase().includes(value))); } console.log(findInValues(arr, 55));

about 4 years ago · Juan Pablo Isaza Report

0

¡Versión más corta! :)

 function findInValues(arr, value) { value = String(value).toLowerCase(); return arr.filter(({ name, house }) => (name.toLowerCase() == value || house.toLowerCase() == value) ); }
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!