digamos que tengo una matriz de objetos
let arr = [ { name: "john", age: 22 }, { name: "george", age: 55 } ];y un objeto
let obj = { name: "bill", age: 55 } y quiero buscar en todos los objetos arr para encontrar a alguien con la misma edad que obj.age y devolver un booleano dependiendo de si incluye la misma propiedad o no.
obviamente puedo hacer:
let find = arr.filter(i => i.age === obj.age); let bool = find.length > 0 && true; pero, ¿hay alguna manera de llamar a un método (lodash, js simple o lo que sea) para obtener esto por diseño como method(arr,obj.age) //returns true ?
let arr = [ { name: "john", age: 22 }, { name: "george", age: 55 } ]; let obj = { name: "bill", age: 55 } let find = arr.filter(i => i.age === obj.age); let bool = find.length > 0 && true; console.log(bool)Puedes usar some . Básicamente, devolverá un valor booleano si alguna de las propiedades del objeto en la matriz coincide con el valor requerido
let arr = [{ name: "john", age: 22 }, { name: "george", age: 55 } ]; let obj = { name: "bill", age: 55 } const val = arr.some(item => item.age === obj.age); console.log(val)podemos hacerlo de dos maneras. podemos usar alguna función y obtener el valor booleano directamente o mediante la función de búsqueda , ¡podemos convertirlo en un valor booleano usando !! operador.
let arr = [{ name: "john", age: 22 }, { name: "george", age: 55 } ]; let obj = { name: "bill", age: 55 } const val1 = arr.some(item => item.age === obj.age); console.log(val1) const val2 = !!arr.find(item => item.age === obj.age); console.log(val2)