Как сохранить переменную из функции?

237
25 июля 2021, 14:30

Нужно сохранить переменные var AI_temp_A3_new_OUTGraph и var airflowM2Graph вне функции.

function completeFn({data}) { 
    for (var i = 0; i < data.length; i++){
    var ready = data.map(function(item) {
        return [moment.utc(item.TimeString, 'DD.MM.YY HH:mm:ss'),parseInt(item.VarValue)]}); 


     var Sravnenie = data.map(function(item) {
        return (item.VarName)}); 

        if (Sravnenie[0] == 'AI_M2_airflow_DB_OUT') {
  var airflowM2Graph = ready;
}
        if (Sravnenie[0] == 'AI_temp_A3_new_OUT') {
  var AI_temp_A3_new_OUTGraph = ready; 
}   
    }

Например:

Выполнилась функция один раз - там была переменная var AI_temp_A3_new_OUTGraph, сохранилась, выполнилась другой раз, там была -var airflowM2Graph- сохранилась.

Делаю так, не работает:

function completeFn({data}) { 
    for (var i = 0; i < data.length; i++){
    var ready = data.map(function(item) {
        return [moment.utc(item.TimeString, 'DD.MM.YY HH:mm:ss'),parseInt(item.VarValue)]}); 

     var Sravnenie = data.map(function(item) {
        return (item.VarName)}); 

    }

  if (Sravnenie[0] == 'AI_M2_airflow_DB_OUT') {
  var airflowM2Graph = ready;
}
        if (Sravnenie[0] == 'AI_temp_A3_new_OUT') {
  var AI_temp_A3_new_OUTGraph = ready; 
}   
Answer 1

Вот пример о чем говорили я и @teran обе переменные доступны в любой нижележащей функции

let airflowM2Graph = 0; 
let AI_temp_A3_new_OUTGraph = 0; 
 
function completeFn() { 
  airflowM2Graph++; 
  AI_temp_A3_new_OUTGraph++; 
  show(); 
} 
 
function show() { 
  console.log({ 
    airflowM2Graph 
  }, { 
    AI_temp_A3_new_OUTGraph 
  }); 
}
<button onclick="completeFn(1, 2)">click my</button> 
<hr> 
 
<button onclick="show()">show result</button>

Answer 2

Можно использовать return для возвращения переменной из функции. Например так:

function foo(){
  let a = 'Some value';
  return a;
}
let b = foo();
console.log(b) // Some value

Теперь переменная b содержит значение переменной a, возвращенное из функции foo().

Либо объявить переменные до функции и потом менять их значение. Это выглядит так:

let a;
function foo(){
    a = 'Some value';
}
foo()
console.log(a) // Some value
READ ALSO
Не работает переключатель городов

Не работает переключатель городов

Не работает переключатель городов на лендингеПодскажите пожалуйста что исправить в коде

203
как при делегировании добавить класс другому элементу

как при делегировании добавить класс другому элементу

Пробую сделать делегирование таким способомСтавлю один обработчик событий на весь код

238
CSS: position: sticky

CSS: position: sticky

В данный момент я пытаюсь сделать сайдбар, который не прокроливается, и при этом прилипает к верхней границе экрана, когда сама страница проскролливается...

366
Не получается установить элементы, как на скриншоте

Не получается установить элементы, как на скриншоте

Коллеги, подскажите, пожалуйстаНе получается сверстать L так, как на скрине

342