He escrito este guión. Funciona bien, pero cuando agrego el bucle no funciona. ¿Hay algún error en la estructura del bucle u otra cosa?
<p id="f"></p> <script> var resultat = '{ "name":"multiplication matricielle", "age":30, "city":"New York"}' var obj = JSON.parse(resultat); document.getElementById("id1").value = obj.name; document.getElementById("id2").value = obj.age; document.getElementById("id3").value = obj.city; </script> <script> function compare() { a = "yes"; var i; for (i = 0; i < '<%=inf.length%>'; i++) { if ('<%=inf[i].nom%>' == obj.name && '<%=inf[i].sortie%>' == obj.city) { return a; } } } document.getElementById('f').innerHTML = compare(); </script>Tienes que volver fuera de tu bucle y puedes cambiar un poco:
function compare() { var a = "No"; // <---initialize with default value var i; for (i = 0; i < parseInt('<%=inf.length%>', 10); i++) { // parse as number if ('<%=inf[i].nom%>' == obj.name && '<%=inf[i].sortie%>' == obj.city) { a = "Yes"; // if check is true change the value } } return a; // <--- now return it here } Por su comentario:
Necesita analizar un número de cadena a un número válido
parseInt('<%=inf.length%>', 10); // You have to parse it as number.