如何在javascript数组中永久存储在线或在Windows中的js文件中存储值?

时间:2018-03-01 15:51:33

标签: javascript arrays store

<!DOCTYPE html>
<html>
<head>
<style>
body {
  
}
#review {
  font-size: 60px;
}
#added {
  font-size: 60px;
}
</style>
</head>

<body>

<input type="text" id="myText">
<button class="firstone" onclick="google()">Student Record</button>
<button class="secondone" onclick="addthis()">Add Student</button>
<p id="review"><p>
<p id="added"><p>


<script type="text/javascript">
var superfile = [];

function lengthfill(val){
  return val.length>4;
}
function numfill(give){
  return !isNaN(give);
}

function google(){
  var str = document.getElementById("myText").value;
  var arr = str.split("/");
  arr = arr.filter(lengthfill);
  arr = arr.filter(numfill);
  var junk = "Caution: This Student Will Rate You Low, lol :)";
  var funk = "Hoorah! Good To Go With This Student :)";
    if (str.includes("/") && arr.length==0){
	  document.getElementById("review").innerHTML = "Sorry! This is Not a Valid URL :)";
    }
    else if (superfile.length==0){
      document.getElementById("review").innerHTML = "Yay! No Record Found :)";     
    }
    else if (superfile.includes(arr[0])){
      document.getElementById("review").innerHTML = junk;
    }
    else {
      document.getElementById("review").innerHTML = funk;
    }
}

function addthis(){
  var str = document.getElementById("myText").value;
  var arra = str.split("/");
  arra = arra.filter(lengthfill);
  arra = arra.filter(numfill); 
  var funky = "Wow! Student Already Black-Listed :)";
  var junky = "Boom! Student Black-Listed :)";
      if (superfile.includes(arra[0]) && arra.length!==0){
        document.getElementById("review").innerHTML=funky;
      }
      else if (str.includes("/") && arra.length!==0) {
        document.getElementById("review").innerHTML=junky;
        superfile.push(arra[0]);
      }
      else {
            document.getElementById("review").innerHTML="Sorry! This is Not a Valid URL :)";
          }
}
</script>
</body>
</html>

我要做的是输入一个网址并提取网址的特定部分。然后,如果满足某个条件,则将提取的部分推送到位于js代码开头的超文件数组中。 push数组的条件位于js代码末尾的最后一个if if。

我的目标是在点击添加学生按钮后将值永久存储在超级文件数组中。我现在面临的唯一问题是,每当我刷新页面时,superfile数组从开始开始即为空。

谢谢!

1 个答案:

答案 0 :(得分:0)

正如我在评论中所说,当页面刷新时,重置变量是一种正常的行为,你无法避免这种情况。
或者您使用数据库存储值,然后将值分配给变量或者您可以存储到localstorage,将数组转换为JSON对象。

点击Add Student按钮(在要添加的功能内)后,将其调用以存储在localStorage中:

localStorage.setItem('ItemName', JSON.stringify(superfile));

如果要从已存储的对象加载或设置superfile的值,请使用:

var superfileJson = localStorage.getItem('ItemName');

这将返回一个JSON对象,将其用作普通数组,执行JSON.parse(superfileJson)