Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 18.01.2023, 17:36
Аватар для Behemoth911
Интересующийся
Отправить личное сообщение для Behemoth911 Посмотреть профиль Найти все сообщения от Behemoth911
 
Регистрация: 17.01.2023
Сообщений: 28

рони, спасибо) попробуем)
Ответить с цитированием
  #22 (permalink)  
Старый 19.01.2023, 22:11
Аватар для Behemoth911
Интересующийся
Отправить личное сообщение для Behemoth911 Посмотреть профиль Найти все сообщения от Behemoth911
 
Регистрация: 17.01.2023
Сообщений: 28

рони, добрый вечер) подскажите пожалуйста: а можно J глобально вынести для всех формул? Чтобы раз выбрал и оно само присваивали его во всех функциях где оно необходимо? Просто в J там будет клацалка с вариантами выбора, и было бы намного проще выбирать её один раз только.

<h1>J gl</h1>
    <form>

        <div>J
        <select id="JGlobal">
            <option>6.8</option>
            <option>6.9</option>
            <option>7.0</option>
            <option>7.5</option>
            <option>3.9</option>
            <option>5.9</option>
        </select>
    </div>
    </form>

    <h1>So</h1>
    <form id="formInput">
        <div>J
            <select id="J">
                <option>6.8</option>
                <option>7.0</option>
            </select>
        </div>
        <div>T1
            <select id="T1">
                <option>0.6</option>
                <option>0.8</option>
                <option>1</option>
                <option>1.2</option>
                <option>1.4</option>
            </select>
        </div>
        <div>T2
            <select id="T2">
                <option>0.2</option>
                <option>0.4</option>
                <option>0.6</option>
            </select>
        </div>
        <div>
            <label>T3</label>
            <input type="number">
        </div>

        <div>
            <label>Va</label>
            <input type="number">
        </div>
    </form>
    <button onclick="breakWay()">Результат So</button>
    <h2 id="result"></h2>

    <h1>Vад (по видимості)</h1>
    <form id="formInput1">
        <div>J
            <select id="J2">
                <option>6.3</option>
                <option>6.8</option>
                <option>7.0</option>
            </select>
        </div>
        <div>T2
            <select id="T21">
                <option>0.2</option>
                <option>0.4</option>
                <option>0.6</option>
            </select>
        </div>
        <div>
            <label>T3</label>
            <input type="number">
        </div>
        <div>
            <label>sv</label>
            <input type="number">
        </div>
        <div>
            <label>vaf</label>
            <input type="number">
        </div>
    </form>
    <button onclick="breakWay1()">Результат Vад</button>
    <h2 id="result2"></h2>
    <h2 id="result3"></h2>
    </div>

[js run]
let resultF1;
let resultF2;
let J = Number(document.querySelector('#JGlobal').value);


function breakWay() {
    const form = document.querySelector('#formInput');
    const t3 = form[3].value;
    const va = form[4].value;
    const t1 = Number(document.querySelector('#T1').value);
    const t2 = Number(document.querySelector('#T2').value);
    //const J = Number(document.querySelector('#J').value);
    resultF1 = (t1 + t2 + Number(t3 * 0.5)) * (+va / 3.6) + (Math.pow(+va, 2) / (25.92 * J));
    console.log(+resultF1.toFixed(2));
    const result = document.querySelector('#result');
    result.innerText = `Результат: ${Number(resultF1.toFixed(2))}`;

}



function breakWay1() {
    const form = document.querySelector('#formInput1');
    console.log(form);
    const t3 = +form[2].value;
    const sv = +form[3].value;
    const vaf = +form[4].value; 
    const t2 = Number(document.querySelector('#T21').value);
    //const J = Number(document.querySelector('#J2').value);
    resultF2 = 3.6 * J * (0.3 + t2 + 0.5 * t3) * ((Math.sqrt((2 * sv) / (J * (Math.pow(+ (0.3 + t2 + 0.5 * t3), 2))) + 1)) - 1);
    console.log(+resultF2.toFixed(2));
    const result = document.querySelector('#result2');
    result.innerText = `Результат2: ${Number(resultF2.toFixed(2))}`;

    const div = document.getElementById("result3");

    if (resultF2 > vaf) {
        div.innerText = 'Швидкість руху перевищує фактичну'
    } else {
        div.innerText = 'Швидкість руху не перевищує фактичну'

    }
}
[/js]
Ответить с цитированием
  #23 (permalink)  
Старый 19.01.2023, 22:37
Аватар для Behemoth911
Интересующийся
Отправить личное сообщение для Behemoth911 Посмотреть профиль Найти все сообщения от Behemoth911
 
Регистрация: 17.01.2023
Сообщений: 28

Остальные разновидности J я думал потом удалить и всё.. Их просто много будет, а каждый раз копировать в HTML то код будет очень длинный.. Та и практичней так будет если бы J был глобальный
Ответить с цитированием
  #24 (permalink)  
Старый 19.01.2023, 22:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Behemoth911,
разбейте функции на две.

1. функция должна вычислять результат и возвращать его
2. запрашивать результат у первой и выводить куда - то.

и тогда вы забьёте на глобальные переменные, как ненужные.
Ответить с цитированием
  #25 (permalink)  
Старый 19.01.2023, 23:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Behemoth911,
function getGlobal() {
            return Number(document.querySelector('#JGlobal').value)
        }
        let J = getGlobal();

        document.querySelector('#JGlobal').addEventListener('change', function() {
            J = getGlobal();
        })
Ответить с цитированием
  #26 (permalink)  
Старый 20.01.2023, 10:02
Аватар для Behemoth911
Интересующийся
Отправить личное сообщение для Behemoth911 Посмотреть профиль Найти все сообщения от Behemoth911
 
Регистрация: 17.01.2023
Сообщений: 28

рони, спасибо ОГРОМНОЕ, помогло) вчера сидел на developer.mozilla и читал про .addEventListener как раз, и там примері по кликам мышки и тд. Теперь и t3 смогу так вывести) Самое удобное в этой штуке то, что можно оставить в функции (где надо отдельно) тоже J и оно будет работать)
Ответить с цитированием
  #27 (permalink)  
Старый 20.01.2023, 15:36
Аватар для Behemoth911
Интересующийся
Отправить личное сообщение для Behemoth911 Посмотреть профиль Найти все сообщения от Behemoth911
 
Регистрация: 17.01.2023
Сообщений: 28

рони, решил я из формул этих удалить J и оставить глобальный, теперь формулы не работают просто(

просто удалял, как выше было в html коде..:

<div>J
            <select id="J2">
                <option>6.3</option>
                <option>6.8</option>
             <option>7.0</option>
            </select>
        </div>


... и всьо, теперь не работает( Не пойму в чём проблема если оно глобально теперь J берёт
Ответить с цитированием
  #28 (permalink)  
Старый 20.01.2023, 16:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Behemoth911,
пас ... читать учебник, структурировать код, делать его понятным.
Ответить с цитированием
  #29 (permalink)  
Старый 20.01.2023, 17:18
Аватар для Behemoth911
Интересующийся
Отправить личное сообщение для Behemoth911 Посмотреть профиль Найти все сообщения от Behemoth911
 
Регистрация: 17.01.2023
Сообщений: 28

пока (временно) решил проблему: <div hidden> J </div> , но правильное решение попытаюсь найти
Ответить с цитированием
  #30 (permalink)  
Старый 20.01.2023, 17:39
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Behemoth911,
правильное решение: нужны данные, запустили функцию, получили результат. не надо из одной функции делать универсального солдата.
Что такое чистые функции в JavaScript?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
при выводе html кода через jquery все криво Satell Общие вопросы Javascript 0 19.03.2016 18:07
Не работают скрипты при выводе блоков через ng-include vsenetak Angular.js 0 13.01.2016 11:02
Не работает $http.get при закрытии страницы AlexDH Angular.js 0 30.09.2015 13:12
не корректно работает с разными версиями веб betonka Events/DOM/Window 12 08.04.2011 12:45
В объекте не корректно работает инкремента (++ или +=1)) Bratok Общие вопросы Javascript 2 28.04.2009 01:28