Получение только последнего введенного значения при сохранении значения в sessionStorage.setitem - PullRequest
0 голосов
/ 23 мая 2019

Хорошо, допустим, я ввожу эти два значения в мою HTML-страницу: 20, 30.

У меня есть эти две переменные, я получаю значение из моей HTML-страницы, и оно отлично работает, поэтому BrugerFugt = 20и BrugerTemp = 30:

    BrugerFugt = document.getElementById("40").value;
    BrugerTemp = document.getElementById("41").value;

Затем я беру эти две переменные и использую setItem.

    sessionStorage.setItem("BF", JSON.stringify(BrugerFugt));
    sessionStorage.setItem("BT", JSON.stringify(BrugerTemp));

На этом этапе, если я console.log (JSON.stringify (BrugerFugt)), он печатает 20, как и должно быть.

Теперь я хочу отправить это на мой сервер, поэтому я вызываю эту переменную:

  serverConnection.send(JSON.stringify(SetBruger));

Я определил эту переменную, что яотправка на мой сервер.

var SetBruger = {
    command: "BrugerIndtastTF",
    brugerT: sessionStorage.getItem("BT"),
    brugerF: sessionStorage.getItem("BF")
}

Затем я попытался напечатать свой JSON.stringify (SetBruger), но он печатает последнее значение, которое я ввел в мою HTML-сеть, а не новое.Скажем, прежде чем я ввел 20 и 30, я ввел что-то вроде 40 и 60. Затем, когда я печатаю свой SetBruger после того, как я ввел 20 и 30, я получаю этот отпечаток в моем терминале.

test: {"command":"BrugerIndtastTF","brugerT":"\"40\"","brugerF":"\"60\""}

Этокак проблема возникает, когда я JSON.stringify (SetBruger)?

1 Ответ

1 голос
/ 23 мая 2019

Ваши свойства объекта устанавливаются при создании объекта.

var SetBruger = {
    command: "BrugerIndtastTF",
    brugerT: sessionStorage.getItem("BT"), // set when object is created
    brugerF: sessionStorage.getItem("BF") // set when object is created
}

Вы можете обернуть этот объект вспомогательной функцией, которая обновляет объект перед возвратом, или заменить его функцией, которая возвращает свежеприготовленный объект.созданный объект со значениями из sessionStorage, например:

function SetBruger() {
  return {
    command: "BrugerIndtastTF",
    brugerT: sessionStorage.getItem("BT"),
    brugerF: sessionStorage.getItem("BF")
  }
}
serverConnection.send(JSON.stringify(SetBruger));

Чтобы иметь возможность повторно использовать этот объект и обновлять другие его свойства, вспомогательная функция, которая обновляет два свойства с содержимым localstorage, будетхорошее решение.

var SetBruger = {
    command: "BrugerIndtastTF",
    brugerT: sessionStorage.getItem("BT"), // set when object is created
    brugerF: sessionStorage.getItem("BF") // set when object is created
}

// Other code that maybe modify the object

function updateBrugerObject() {
    SetBruger.brugerT = sessionStorage.getItem("BT");
    SetBruger.brugerF = sessionStorage.getItem("BF");
}

updateBrugerObject();
serverConnection.send(JSON.stringify(SetBruger));

Какое лучшее решение для вас, зависит от того, как и где вы планируете использовать объект.

...