Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 本地存储阵列_Javascript_Arrays - Fatal编程技术网

Javascript 本地存储阵列

Javascript 本地存储阵列,javascript,arrays,Javascript,Arrays,伙计们帮我写代码。其思想是将新输入保存在字符串中,并使用HTML显示它们。每次我添加一个新的,HTML都会显示它,如果我重新加载页面,项目仍然会显示,第一个getItem方法仍然有效,如果我再次重新加载,问题就出在这里。重新加载页面并在字符串中插入新元素后,它将显示最新的输入,并从其他会话中删除这些输入 如果我现在插入:“一”、“二”、“三”,我将显示“一、二、三”,如果我重新加载,它仍将显示“一、二、三”,这很好,但在重新加载后,如果我插入“四”,它将只显示“四”,我希望显示“一、二、三、四”

伙计们帮我写代码。其思想是将新输入保存在字符串中,并使用HTML显示它们。每次我添加一个新的,HTML都会显示它,如果我重新加载页面,项目仍然会显示,第一个
getItem
方法仍然有效,如果我再次重新加载,问题就出在这里。重新加载页面并在字符串中插入新元素后,它将显示最新的输入,并从其他会话中删除这些输入

如果我现在插入:“一”、“二”、“三”,我将显示“一、二、三”,如果我重新加载,它仍将显示“一、二、三”,这很好,但在重新加载后,如果我插入“四”,它将只显示“四”,我希望显示“一、二、三、四”

我怎样才能做到这一点

<!DOCTYPE html>
<html>
  <body>
    <div id="result"></div>
    <button onclick="reloadd()">Reload</button>
    <button onclick="clearF()">Clear</button>
    <input id="valoare">
    <button id="adauga" onclick="adauga()">+</button>
    <button onclick="nrElemente()">ElemNr?</button>
    <script>
      var cars = [];
      var two = "kes";

      document.getElementById("result").innerHTML = localStorage.getItem("array1");

      function clearF() {
        window.localStorage.clear();
        location.reload();
      }

      function adauga() {
        var x = document.getElementById('valoare').value;
        cars.push(x);

        localStorage.setItem("array1", cars);
        document.getElementById("result").innerHTML = localStorage.getItem("array1");
      }

      function reloadd() {
        location.reload();
      }

      function nrElemente() {
        alert(localStorage.length);
      }

    </script>
  </body>
</html>

重新加载
清楚的
+
ElemNr?
var cars=[];
var two=“kes”;
document.getElementById(“结果”).innerHTML=localStorage.getItem(“array1”);
函数clearF(){
window.localStorage.clear();
location.reload();
}
函数adauga(){
var x=document.getElementById('valoare')。值;
汽车。推(x);
localStorage.setItem(“array1”,cars);
document.getElementById(“结果”).innerHTML=localStorage.getItem(“array1”);
}
函数重载(){
location.reload();
}
函数nrElemente(){
警报(localStorage.length);
}

每次加载页面时,您都会创建一个空数组,当您添加到数组中时,您会存储该数组,但决不会将
cars
数组连接到已存储的数据

试着改变

var cars =[];

当您去存储
汽车时
数组更改为:

localStorage.setItem("array1",JSON.stringify(cars));

您的代码无法工作,因为您没有将阵列存储在任何位置。 要将阵列保存到
localStorage
中,您可以使用:

localStorage.setItem("cars", JSON.stringify(cars));
然后,不要这样做:

var cars = [];
您可以按如下方式加载汽车阵列:

var cars = localStorage.getItem("cars");
cars = (cars) ? JSON.parse(cars) : [];
这是在检查
localStorage
对象是否包含名为
cars
数组。现在,如果它这样做,它将解析该字符串并返回存储的cars数组,如果它不这样做,它将把cars数组设置为一个新的空数组

在这里,我已修复并整理了您的代码:

<!DOCTYPE html>
<html>
<body>
  <div id="result"></div>
  <button onclick="reloadd()">Reload</button>
  <button onclick="clearF()">Clear</button>
  <input id="valoare" />
  <button id="adauga" onclick="adauga()">+</button>
  <button onclick="nrElemente()">ElemNr?</button>

  <script type="text/javascript">
    var array1 = localStorage.getItem("array1");
    array1 = (array1) ? JSON.parse(array1) : [];

    var two = "kes";
    document.getElementById("result").innerHTML = localStorage.getItem("array1");

    function clearF() {
      window.localStorage.clear();
      location.reload();
    }
    function adauga() {
      var x = document.getElementById("valoare").value;
      array1.push(x);
      localStorage.setItem("array1", JSON.stringify(array1));
      document.getElementById("result").innerHTML = localStorage.getItem("array1");
    }
    function reloadd() {
      location.reload();
    }
    function nrElemente() {
      alert(localStorage.length);
    }
  </script>
</body>
</html>

重新加载
清楚的
+
ElemNr?
var array1=localStorage.getItem(“array1”);
阵列1=(阵列1)?parse(array1):[];
var two=“kes”;
document.getElementById(“结果”).innerHTML=localStorage.getItem(“array1”);
函数clearF(){
window.localStorage.clear();
location.reload();
}
函数adauga(){
var x=document.getElementById(“valoare”).value;
阵列1.推力(x);
setItem(“array1”,JSON.stringify(array1));
document.getElementById(“结果”).innerHTML=localStorage.getItem(“array1”);
}
函数重载(){
location.reload();
}
函数nrElemente(){
警报(localStorage.length);
}
此外,将JavaScript事件和函数放在HTML属性中被认为是不好的做法。通过在脚本元素/JS文件中放置JS的全部(或至少大部分),尽可能多地分离HTML、CSS和JS


祝您好运,万事如意。

您的代码存在一些主要问题,这是一个固定版本:

<script type="text/javascript">
  var cars = [];
  try {
    cars = JSON.parse(localStorage.getItem("array1"));
  } catch (err) {}

  var two = "kes";
  document.getElementById("result").innerHTML = cars;

  function clearF() {
    window.localStorage.clear();
    location.reload();
  }
  function adauga() {
    var x = document.getElementById('valoare').value;
    cars.push(x);
    localStorage.setItem("array1", JSON.stringify(cars));
    document.getElementById("result").innerHTML = localStorage.getItem("array1");
  }
  function reloadd() {
    location.reload();
  }
  function nrElemente() {
    alert(localStorage.length);
  }
</script>

var cars=[];
试一试{
cars=JSON.parse(localStorage.getItem(“array1”);
}捕获(错误){}
var two=“kes”;
document.getElementById(“结果”).innerHTML=cars;
函数clearF(){
window.localStorage.clear();
location.reload();
}
函数adauga(){
var x=document.getElementById('valoare')。值;
汽车。推(x);
setItem(“array1”,JSON.stringify(cars));
document.getElementById(“结果”).innerHTML=localStorage.getItem(“array1”);
}
函数重载(){
location.reload();
}
函数nrElemente(){
警报(localStorage.length);
}

这是一种非常常见的模式…尝试将
cars
记录到consoleguys。您能给我一个cod,它符合我第一次想要达到的效果吗?为了保存输入,不要丢失Mooo注释,您应该使用
JSON.stringify()
设置localStorage时,也应该使用
JSON.stringify()
。localStorage仅存储字符串。如果你正在与之抗争,你可以使用
store.js
library这两个更改就可以了。。。您现在在console中没有看到完整的数组吗?我正在使用浏览器查看结果,现在我使用W3的平台,请测试您的代码,因为您的支持可能有用且正确,但在我的代码中没有任何效果,例如..在您说了之后,我更改了localStorage.setItem,并使用您的代码和代码没有任何作用是的,谢谢,它工作了。但是我怎样才能删除方形制动器呢?你没有
<script type="text/javascript">
  var cars = [];
  try {
    cars = JSON.parse(localStorage.getItem("array1"));
  } catch (err) {}

  var two = "kes";
  document.getElementById("result").innerHTML = cars;

  function clearF() {
    window.localStorage.clear();
    location.reload();
  }
  function adauga() {
    var x = document.getElementById('valoare').value;
    cars.push(x);
    localStorage.setItem("array1", JSON.stringify(cars));
    document.getElementById("result").innerHTML = localStorage.getItem("array1");
  }
  function reloadd() {
    location.reload();
  }
  function nrElemente() {
    alert(localStorage.length);
  }
</script>