Tengo la siguiente matriz de elementos:
[ { url: "www.google.com", name: "name1" }, { url: "www.google.com2", name: "name1" }, { url: "www.google.com3", name: "name1" } ]y una variable:
let url = "www.google.com2"¿Cómo verificaría si la variable existe en la matriz y, si existe, cómo imprimiría el objeto específico que marca la variable?
Puedo verificar si la variable existe en la matriz, pero ¿cómo imprimiría el objeto específico que tiene la misma URL que la variable?
forEach const input = [ { url: "www.google.com", name: "name1" }, { url: "www.google.com2", name: "name1" }, { url: "www.google.com3", name: "name1" } ] let url = "www.google.com2" input.forEach(object => { if(object.url === url) { console.log(object) } })o si quisiera encontrar solo un elemento en la matriz
puedes usar el método de find
también puedes almacenar el elemento encontrado en la variable
const input = [ { url: "www.google.com", name: "name1" }, { url: "www.google.com2", name: "name1" }, { url: "www.google.com3", name: "name1" } ] let url = "www.google.com2" const foundObject = input.find(object => object.url === url) console.log('foundObject', foundObject)Puede usar la función JS filter() para eso. Filtrar cinco que todos los partidos. Si está seguro de que su matriz de entrada contiene solo una vez esta URL, puede usar: r[0] ?? null ; Entonces obtendrás solo el objeto.
const input = [ { url: "www.google.com", name: "name1" }, { url: "www.google.com2", name: "name1" }, { url: "www.google.com3", name: "name1" } ] const url = 'www.google.com2'; const r = input.filter(e => e.url === url); console.log('result: ',r); console.log('resultOne: ',r[0] ?? 'nothing found');Si desea imprimir todos los objetos que contienen la URL deseada, debe ir con la respuesta de @shutsman.
Si está seguro de que solo hay un objeto contenido con la propiedad (en caso de una identificación o algo así), podría usar:
const input = [ { url: "www.google.com", name: "name1" }, { url: "www.google.com2", name: "name1" }, { url: "www.google.com3", name: "name1" } ] let url = "www.google.com2" console.log(input.find(obj => obj.url === url))