Como dice el título, un usuario ingresa dos campos en mi archivo HTML. Estoy tratando de tomar estos dos campos, asignarles una variable en JS y, según lo que escriban, se obtiene un resultado de un archivo JSON. ¿Me estoy perdiendo de algo? Puedo hacer que funcione si solo estoy usando un valor ingresado por el usuario, pero parece que no puedo hacer que dos valores funcionen correctamente. Aquí está el enlace al archivo JSON: Archivo JSON
function listCities() { var c = document.getElementById("country"); var s = document.getElementById("subcountry"); var answer = document.getElementById("textarea1"); var citiesArray = JSON.parse(data); var output = "" for(obj of citiesArray) { if(obj.country == c.value && obj.subcounty == s.value) { output += `${obj.name}\n`; } } answer.value = output; }Acabo de crear una demostración de trabajo y está funcionando bien. Eche un vistazo y avíseme si se requieren más cambios como parte del requisito.
function listCities() { var c = document.getElementById("country"); var s = document.getElementById("subcountry"); var answer = document.getElementById("textarea1"); var citiesArray = [{ country: 'country1', subcountry: 'subcountry1', name: 'name1' }, { country: 'country1', subcountry: 'subcountry1', name: 'name2' }, { country: 'country1', subcountry: 'subcountry1', name: 'name3' }]; var output = "" for(obj of citiesArray) { if(obj.country == c.value && obj.subcountry == s.value) { output += `${obj.name}\n`; } } answer.value = output; } Country : <input type="text" id="country" name="country"/> Sub Country : <input type="text" id="subcountry" name="subcountry"/> <input type="button" value="List Cities" onclick="listCities()"/> <br><br> <textarea id="textarea1" name="textarea1"></textarea>La función JSON.parse() regresa con un objeto, no una matriz. Tal vez eso comete un error.
Ha escrito mal: obj.subcounty .