Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Данные не сохраняются после перезагрузки (https://javascript.ru/forum/misc/76519-dannye-ne-sokhranyayutsya-posle-perezagruzki.html)

jenya2802 19.01.2019 06:47

Данные не сохраняются после перезагрузки
 
В чем может быть ошибка? И надо ли создавать отдельный файл JSON?

var arr = JSON.parse(localStorage.getItem('avg')) || [];
document.getElementById("btn").addEventListener("click", function() {
  var num = parseInt(document.getElementById("num").value)
  if(!num) return; // ?
  arr.push(num);
  var avg = arr.reduce(function(a, b) { return a + b; }) / arr.length;
  document.getElementById("res").innerText = avg;
  localStorage.setItem('avg', JSON.stringify(arr));

})

рони 19.01.2019 10:04

Цитата:

Сообщение от jenya2802
В чем может быть ошибка?

DOMContentLoaded?

рони 19.01.2019 10:27

localStorage среднее арифметическое
 
jenya2802,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">

  <script>
document.addEventListener("DOMContentLoaded", function() {
    var arr = JSON.parse(localStorage.getItem("avg")) || [];

    function average(arr) {
        return arr.length ? arr.reduce(function(a, b) {
            return a + b
        }) / arr.length : 0
    }

    function show() {
        var avg = average(arr);
        document.getElementById("res").textContent = avg.toFixed(2)
    }

    function addSaveNum() {
        var num = parseInt(document.getElementById("num").value);
        if (!num) return;
        arr.push(num);
        localStorage.setItem("avg", JSON.stringify(arr));
        show()
    }
    document.getElementById("btn").addEventListener("click", addSaveNum);
    show()
});
  </script>
</head>

<body>
<div id="res"></div>
<input type="text" id="num">
<button id="btn">go</button>
</body>
</html>


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