JavaScript не распечатывает значения

Итак, я пытаюсь напечатать все значения x, y, z из этого уравнения x − 2y + 3z = 0 (значение от 1 до 5, значение y от 6 до 10, а z от 3 до 7). ) в HTML через javascript, но

document.getElementById("display").innerHTML = x,y,z;  

Отображает только максимальное значение x, y, z. вместо любого возможного решения. Поэтому я не уверен, есть ли проблема с циклами for и с тем, как я пытаюсь отобразить на HTML-странице. Это результат, который я хочу

function Solve() {
    {
        var x = [];
        var y = [];
        var z = [];
        var ans = [];
        // x-2y+3z=0
        // x3[1,5] y3[6,10] z3[3,7]
        console.info("x\ty\tz\n\n");
        for (x = 1; x <= 5; x++) {
            for (y = 6; y <= 10; y++) {
                z = (2 * y - x) / 3.0;
                if (x >= 0 && y >= 0 && z >= 0) {
                    if (x % 1 == 0 && y % 1 == 0 && z % 1 == 0) {
                        if (x >= 1 && x <= 5 && y >= 6 && y <= 10 && z >= 3 && z <= 7) {
                            (document.getElementById("display").innerHTML = x), y, z;
                        }
                    }
                }
            }
        }
        for (y = 6; y <= 10; y++) {
            for (z = 3; z <= 7; z++) {
                x = 2 * y - 3 * z;
                if (x >= 0 && y >= 0 && z >= 0) {
                    if (x % 1 == 0 && y % 1 == 0 && z % 1 == 0) {
                        if (x >= 1 && x <= 5 && y >= 6 && y <= 10 && z >= 3 && z <= 7) {
                            document.getElementById("display").innerHTML = y;
                        }
                    }
                }
            }
        }
        for (z = 3; z <= 7; z++) {
            for (x = 1; x <= 5; x++) {
                y = (x + 3 * z) / 3.0;
                if (x >= 0 && y >= 0 && z >= 0) {
                    if (x % 1 == 0 && y % 1 == 0 && z % 1 == 0) {
                        if (x >= 1 && x <= 5 && y >= 6 && y <= 10 && z >= 3 && z <= 7) {
                            document.getElementById("display").innerHTML = z;
                        }
                    }
                }
            }
        }
    }
}
<center>
    <p>x - 2y + 3z = 0</p>
    <button onclick = "Solve()">Solve</button><br />

    <span id = "display"></span>

    <span id = "display"></span>
    <span id = "display"></span>
    <span id = "display"></span>
    <span id = "display"></span>
    <span id = "display"></span>
    <span id = "display"></span>
    <span id = "display"></span>
    <span id = "display"></span>
    <span id = "display"></span>
</center>

атрибут я бы в теге span должен быть уникальный для каждого тега. использовать класс.

s.kuznetsov 20.03.2022 11:09

так что я должен поставить 3 тега и 3 идентификатора всего?

Chenuka Jayasuriya 20.03.2022 11:11

Что бы означало такое утверждение, как (document.getElementById("display").innerHTML = x), y, z;?

derpirscher 20.03.2022 11:12

Я предполагаю, что он должен распечатать значения x, y, z, как в желаемом результате (изображение)

Chenuka Jayasuriya 20.03.2022 11:13

@ChenukaJayasuriya, во-первых, повторите это как <span class = "display"></span> для всего тега span и используйте getElementsByClassName() или querySelectorAll() для ссылки на класс.

s.kuznetsov 20.03.2022 11:15

в этом случае я вообще ничего не получаю @s.kuznetsov

Chenuka Jayasuriya 20.03.2022 11:22

Пожалуйста, не используйте <center>, это устарело; var и innerHTML могут повредить ваше приложение, избегайте их.

Leonardo 20.03.2022 11:27
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
7
82
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Кажется, что цель OP - перечислить все целочисленные решения для данного уравнения в заданном диапазоне для x, y и z. Следующее предоставит это решение:

// x-2y+3z=0
// x3[1,5] y3[6,10] z3[3,7]
const res=[];
for(let x=1;x<=5;x++)
 for(let y=6;y<=10;y++)
   for(let z=3;z<=7;z++)
    if (x-2*y+3*z==0)
     res.push([x,y,z]);
document.querySelector("tbody").innerHTML=res.map(r=>`<tr><tr><td>${r.join("</td><td>")}</td></tr>`).join("");
th,td {text-align:right; width:20px;padding: 0 6px} 
.centered {text-align: center}
table {margin: 0 auto}
<div class = "centered">
<p>x - 2y + 3z = 0</p>
<table><thead><tr><th>x</th><th>y</th><th>z</th></tr></thead>
<tbody></tbody></table>
</div>
Ответ принят как подходящий

Вы можете попробовать следующий код для печати решений уравнения:

HTML:

<center>
    <p>x - 2y + 3z = 0</p>
    <button onclick = "Solve()">Solve</button><br />
    <div id = "solution" style = "color: green"></div>
</center>

JavaScript:

function Solve()
{
    const solutions=[];
    for(let x=1;x<=5;x++)
        for(let y=6;y<=10;y++)
            for(let z=3;z<=7;z++)
                if (x-2*y+3*z==0)
                    solutions.push([x,y,z]);
                    
   var solutionElement = document.getElementById("solution");
   solutionElement.innerText  = "The solutions are:"
   solutions.forEach(solution => {
   const node = document.createElement("div");
   node.innerText = `x= ${solution[0]}, y=${solution[1]}, z=${solution[2]}`;
   solutionElement.appendChild(node);
   });
}

PS: Вы можете применить стиль, как хотите.

не могли бы вы объяснить мне код внизу?

Chenuka Jayasuriya 20.03.2022 13:15

Это уравнение имеет более одного решения. Таким образом, в приведенном выше коде мы вычислили все решения и сохранили их в массиве с именем «решения». Следующая часть — визуализировать эти решения в пользовательском интерфейсе/HTML. Мы добавили один div с идентификатором в качестве «решения». мы создаем и добавляем дочерние узлы с деталями решения к основным узлам div (id = решение). Поскольку мы используем массив решений для создания и добавления дочернего dev, количество созданных дочерних узлов совпадает с количеством решений, которые у нас есть.

Shreekesh Murkar 20.03.2022 13:23

Другие вопросы по теме