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

118
Views
Filtre una matriz de objetos, si X no puede encontrar buscando Y

Tengo una matriz de objetos y quiero hacer un filtro cuando un idioma no existe, use otro. Por ejemplo, cuando estoy buscando el idioma de y no existe, quiero buscar en este caso el idioma en

 const arrObj = [ {id: 0, name: 'Zero', lang: 'hu', video: 'Clip'}, {id: 1, name: 'One', lang: 'en', video: 'Clip'}, {id: 2, name: 'Two', lang: 'en', video: 'Clip'}, {id: 3, name: 'Three', lang: 'en', video: 'Trailer'}, {id: 4, name: 'Four', lang: 'hu', video: 'Clip'}, {id: 5, name: 'Five', lang: 'en', video: 'Trailer'}, {id: 6, name: 'Six', lang: 'hu', video: 'Trailer'}, {id: 7, name: 'Seven', lang: 'hu', video: 'Clip'}, ]
 const language = 'de'
 const item = arrObj.filter(e => { if (e.lang === language && e.video === 'Trailer') { return e.video === 'Trailer' } })

Lo he intentado con la función de búsqueda y con diferentes declaraciones if else también. Estoy realmente atascado con esto ahora. Cualquier ayuda sería apreciada

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

0

Esto buscará utilizando todas las palabras clave dadas hasta que una de ellas arroje algún resultado. Si no se encuentra ningún resultado, devuelve una matriz vacía;

 let searchTerms = ["de", "be", "en"] const arrObj = [{ id: 0, name: 'Zero', lang: 'hu', video: 'Clip' }, { id: 1, name: 'One', lang: 'en', video: 'Clip' }, { id: 2, name: 'Two', lang: 'en', video: 'Clip' }, { id: 3, name: 'Three', lang: 'en', video: 'Trailer' }, { id: 4, name: 'Four', lang: 'hu', video: 'Clip' }, { id: 5, name: 'Five', lang: 'en', video: 'Trailer' }, { id: 6, name: 'Six', lang: 'hu', video: 'Trailer' }, { id: 7, name: 'Seven', lang: 'hu', video: 'Clip' }, ]; let search = (data, keywords) => { let filteredData = []; for (let j = 0; j < keywords.length; j++) { filteredData = data.filter(x => x.lang === keywords[j]) if (filteredData.length != 0) { return filteredData; } } return filteredData; } console.log(search(arrObj, searchTerms))

about 4 years ago · Juan Pablo Isaza Report

0

Puedes intentar usar el operador lógico o . El lado derecho del operador solo se evaluará cuando no haya un tráiler en de , ya que find devuelve indefinido (lo cual es falso) cuando no hay coincidencia:

 const arrObj = [ {id: 0, name: 'Zero', lang: 'hu', video: 'Clip'}, {id: 1, name: 'One', lang: 'en', video: 'Clip'}, {id: 2, name: 'Two', lang: 'en', video: 'Clip'}, {id: 3, name: 'Three', lang: 'en', video: 'Trailer'}, {id: 4, name: 'Four', lang: 'hu', video: 'Clip'}, {id: 5, name: 'Five', lang: 'en', video: 'Trailer'}, {id: 6, name: 'Six', lang: 'hu', video: 'Trailer'}, {id: 7, name: 'Seven', lang: 'hu', video: 'Clip'}, ] const language = 'de'; const item = arrObj.find(e => e.video == 'Trailer' && e.lang === language) || arrObj.find(e => e.video == 'Trailer' && e.lang === 'en'); console.log(item);

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!