¿Cuál es la mejor manera de analizar datos comunes de un objeto y una matriz para obtener un valor específico de los datos actuales?
En este caso, estoy mirando current_data[3] y dog_database.vets para ver el resultado de current_data[4] .
current_data = ['true', 'visiting-today', 'DVM-Wiessman','J-001']; var dog_database = [ {"dog_name": "Joey", "chip_id": "001", "breed": "mixed", "vets":['DVM-Wiessman','DVM-White']}, {"dog_name": "Max", "chip_id": "002", "breed": "beagle", "vets":'DVM-Wiel'}, {"dog_name": "Izzy", "chip_id": "003", "breed": "mixed", "vets":'DVM-James'}, {"dog_name": "Frankie", "chip_id": "004", "breed": "terrier","vets":'DVM-Smith'}, {"dog_name": "Star", "chip_id": "005", "breed": "husky", "vets":['DVM-Johns','DVM-Pearson']}, {"dog_name": "Goku", "chip_id": "006", "breed": "lab", "vets":'undecided'}, ]; //How I thought about approaching it in psuedocode if(current_data[3] == dog_database.vets || dog_database.vets.includes(current_data[3])) { console.log(current_data[4]) } else{ console.log('does not exist'); }No estoy seguro de que haya una "mejor" manera porque depende mucho de la forma de sus datos. Pero lo que tienes no está lejos.
Parece que una pequeña función de ayuda podría hacer que esto sea más extensible. Algo como
var current_data = ['true', 'visiting-today', 'DVM-Wiessman','J-001']; const VET_INDEX = 2 const RESULT_INDEX = 3 var dog_database = [ {"dog_name": "Joey", "chip_id": "001", "breed": "mixed", "vets":['DVM-Wiessman','DVM-White']}, {"dog_name": "Max", "chip_id": "002", "breed": "beagle", "vets":'DVM-Wiel'}, {"dog_name": "Izzy", "chip_id": "003", "breed": "mixed", "vets":'DVM-James'}, {"dog_name": "Frankie", "chip_id": "004", "breed": "terrier","vets":'DVM-Smith'}, {"dog_name": "Star", "chip_id": "005", "breed": "husky", "vets":['DVM-Johns','DVM-Pearson']}, {"dog_name": "Goku", "chip_id": "006", "breed": "lab", "vets":'undecided'}, ]; function findByVet(vetName) { return dog_database.find((row) => row.vets == vetName || row.vets.includes(vetName)) } if (findByVet(current_data[VET_INDEX])) { console.log( current_data[RESULT_INDEX] ) } else { console.log( "does not exist" ) } Como puede ver, agregué un par de constantes para explicar/mostrar lo que se supone que representa cada campo en current_data . No estoy seguro de que RESULT_INDEX sea realmente el nombre correcto, pero estoy seguro de que podría hacerlo más informativo/mejor nombrado.
No estoy seguro de cuánto control tiene sobre current_data , pero si fuera un objeto, más como
var current_data = { "something": true, "status": "visiting-today" "vet": "DVM-Wiessman", "result": "J-001" }(Estoy seguro de que las claves aquí no son correctas... solo estoy adivinando cómo se llamarán)
Entonces el código sería un poco más fácil de leer y entender porque se vería algo como
if (findByVet(currentData.vet)) { return currentData.result; } else { return "does not exist" }O algo por el estilo.