hola héroes javascript. He estado sufriendo de este problema durante mucho tiempo. el problema es que estoy buscando dentro de un objeto usando el objeto como clave de búsqueda y también usando el método de filtro . como esto
let data = [ { name:"Jade", role:"admin", pass:"0000" }, { name:"Jon", role:"user", pass:"0000" }, { name:"Adam", role:"user", pass:"0000" }, ] let result = data.filter((item)=>{ return {role:"user",pass:"0000"} in item })también lo intenté
let result = data.filter((item)=>{ return {role:"user",pass:"0000"} in {...item} })siempre devuelve una matriz vacía.
por favor avíseme si hay alguna manera de resolver esto
Puede leer en https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes que podría, por ejemplo, hacer y si la declaración de tipo
No puede simplemente comparar objetos usando el operador "en". Puede iterar todo el objeto y hacer coincidir los valores. O simplemente haga coincidir todos los valores en los objetos.
**Muestra **
let data = [ { name: "Jade", role: "admin", pass: "0000", }, { name: "Jon", role: "user", pass: "0000", }, { name: "Adam", role: "user", pass: "0000", }, ]; //1: Matching whole object const isEqual = (user, item) => { return Object.entries(user).every(([key, value]) => item[key] === value); }; let result = data.filter((item) => { return isEqual({ role: "user", pass: "0000" }, item); }); console.log(result); // 2: Matching values const isEqua2 = (user, item) => user.role === item.role && user.pass === item.pass; let result2 = data.filter((item) => { return isEqua2({ role: "user", pass: "0000" }, item); }); console.log(result2);hazlo así:
let result = data.filter((item)=>{ return item.role == "user" && item.pass == "0000"; })