Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как вывести объект из функции? (https://javascript.ru/forum/events/83928-kak-vyvesti-obekt-iz-funkcii.html)

nEmEc 20.04.2022 19:21

Как вывести объект из функции?
 
1) Мне нужно из нескольких полей <input> собрать значения
делал это с помощью document.getElementById("").value;

2) потом обработать их
(собрал их в объект)

3) и дальше продолжить работать с ними

1-й и 2-й пункт выполнил с помощью функции. А как мне из этой функции этот объект вывести?

рони 20.04.2022 20:35

nEmEc,
понять бы в чём проблема?

nEmEc 20.04.2022 21:09

Я в JavaScript ещё новичок. Может и объяснил плохо...

<script>

function allFunction(){

function getFormValueA(){
let a = document.getElementById('numberA').value;
return a;
};

let a = getFormValueA();

function getFormValueB(){
let b = document.getElementById('numberB').value;
return b;
};

let b = getFormValueB();

function getPopytkiValue(){
let c = document.getElementById('popytki').value;
return c;
};

let c = getPopytkiValue();

let data = {
chislo_1: a,
chislo_2: b,
popytki: c,
};

console.log (`ДО`);
console.log (data);

return data;

};

let data1 = allFunction();
console.log (`ПОСЛЕ`);
console.log (data1);

</script>


<div>
<label>
Число 1:
<input type="number" id="numberA">
</label>
</div>

<div>
<label>
Число 2:
<input type="number" id="numberB">
</label>
</div>

<div>
Попыток:
<input type="number" id="popytki">
</div>

<div>
<button onclick="allFunction()">Попробовать</button>
</div>

рони 20.04.2022 21:29

nEmEc,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

рони 20.04.2022 21:31

nEmEc,
в вашем коде ошибок нет, но запускать его надо после создания страницы, либо уберите строку let data1 = allFunction();

либо перенесите её вниз страницы. (после всех div)

nEmEc 20.04.2022 21:56

function allFunction(){

function getFormValueA(){
let a = document.getElementById('numberA').value;
return a;
};

let a = getFormValueA();

function getFormValueB(){
let b = document.getElementById('numberB').value;
return b;
};

let b = getFormValueB();

function getPopytkiValue(){
let c = document.getElementById('popytki').value;
return c;
};

let c = getPopytkiValue();

let data = {
chislo_1: a,
chislo_2: b,
popytki: c,
};

console.log (`ДО`);
console.log (data);

return data;

};

let data1 = allFunction();
console.log (`ПОСЛЕ`);
console.log (data1);




<div>
<label>
Число 1:
<input type="number" id="numberA">
</label>
</div>

<div>
<label>
Число 2:
<input type="number" id="numberB">
</label>
</div>

<div>
Попыток:
<input type="number" id="popytki">
</div>

<div>
<button onclick="allFunction()">Попробовать</button>
</div>

nEmEc 20.04.2022 21:59

Всё равно не работает. Я и в отдельный файл код помещал.

nEmEc 20.04.2022 22:01

console.log (data) всё правильно показывает, а data1 - ничего!

рони 20.04.2022 22:07

nEmEc,
а откуда там что-то будет? если вы сохранили там состояние инпутов на момент загрузки страницы(а они пустые)?

рони 20.04.2022 22:09

nEmEc,
вам нужна ещё одна функция в которой вы будите что-то делать с обьектом, вот ней вы и должны вызвать создание объекта, а не хранить его заранее.


Часовой пояс GMT +3, время: 13:12.