Mira la forma en que he hecho el objeto fam. Puedo buscar los nombres de usuario de estos objetos y mi página web mostrará su peso usando este código. Por lo que sé, es más conveniente hacer objetos a través de un constructor como Dog(). Quiero que mi función pueda iterar a través de todos mis objetos creados a través del constructor Dog(), como doggo y doggy, y mostrar su peso en mi página web cuando el usuario busque el nombre del perro. ¿Cómo hago esto, si es posible?
function Dog(name, weight) { this.name = name; this.weight = weight; } let doggo = new Dog("Spot", "10kg"); let doggy = new Dog("Snoop", "20kg"); const fam = [ { name: "one", weight: "1kg" }, { name: "two", weight: "2kg" }, ]; function find() { var x = String(field.value); for (var i = 0; i<fam.length; i++) { if (fam[i].name === x) { para.textContent = fam[i].weight; } } } btn.addEventListener("click", find);Una forma de hacer esto en el front-end (sin usar una base de datos) es agregar todos los objetos, en este caso los datos de los perros, dentro de una matriz y luego usar filter() para seleccionar el objeto buscado. Finalmente, devuelva los datos al detector de eventos y cree la salida HTML.
const input = document.getElementById('input'), btn = document.getElementById('btn'), container = document.getElementById('container'); var dogs = [ new Dog("spot", "10kg"), new Dog("snoop", "20kg"), new Dog("snoopy", "100kg") ] function Dog(name, weight) { this.name = name this.weight = weight } function find(name) { let info = dogs.filter(dog => dog.name === name) return info[0] } btn.addEventListener("click", function(){ let dogInfo = find(input.value), html = `name: ${dogInfo.name} <br> weight: ${dogInfo.weight}` container.innerHTML = html }) <label>Dog name: </label> <input id="input" type="text" value="spot"> <button id="btn">Show info</button> <br><br> <div id="container"></div>