Estoy tratando de crear un filtro que filtre una matriz según la calificación y los años de experiencia, entre otros criterios, después de hacer clic en el botón de filtrado. Soy nuevo en JavaScript y, como tal, me he encontrado con muchos desafíos. Tuve un desafío al incorporar una función para el botón que filtra la matriz y devuelve el resultado deseado. Las ideas sobre la mejor manera de implementar esto y tener un código completamente funcional serán muy apreciadas.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>APPLICANT FILTERING</title> </head> <body> <h1>FILTER APPLICANTS</h1> <button onclick="newArray()">CLICK TO FILTER</button> <p id="demo"></p> <script> var obj = { 'applicants': [{ "name": "Tom", "qualification": "degree", "experience": 5}, { "name": "David", "qualification": "certificate", "experience": 2}, ] }; var newArray = obj.applicants.filter(function(el) { return el.qualification = 'degree' && el.experience >= 5; }); console.log(newArray); document.getElementById("demo").innerHTML = text; </script> </body> </html>Esto debería funcionar. En su objeto, la experiencia es una cadena (por ejemplo, "5 años"). En su lugar, debería considerar usar valores enteros para esto (es decir, 5) porque la segunda expresión en su filtro ( el.experience >= 5 ) espera un valor numérico para experience .
const obj = { 'applicants': [{ "name": "Tom", "qualification": "degree", "experience": 5, }, { "name": "David", "qualification": "certificate", "experience": 2 }, ] }; const newArray = obj.applicants.filter((el) => ( el.qualification == 'degree' && el.experience >= 5 )); console.log(newArray);