开发者问题收集

如何修复 Javascript 中的“Array.push 不是函数”错误

2019-04-11
313

我正在尝试使用 localstorage 为一个小项目创建一个小型数据库(只是为了模拟登录)。

它应该打开两个提示来询问用户名和密码,然后将其存储在对象数组中。发生的事情是,我用管理员的对象启动数组的第一个元素,当插入第二个用户后(它允许我在管理员之后再添加一个)它说 Users(Array).push 不是一个函数。

var name = prompt('Insert your name');
var password = prompt('Insert your password');

if(localStorage.length!==0){
    Users=localStorage.getItem('Users');
}else {
    var Users = [{
        name:'admin',
        password:'admin'
}];
}

var person = {
    name:name,
    password:password
}

Users.push(person);

localStorage.setItem('Users',Users);

当我一遍又一遍地加载页面时,它应该将用户和密码作为对象存储在数组中。

提前感谢任何愿意提供帮助的人

1个回答

localStorage 存储键/值对,但值存储为字符串,而不是其他数据结构。

localStorage.setItem('Users', JSON.stringify(Users));

然后当您获得它时:

Users = JSON.parse(localStorage.getItem('Users'));

您遇到错误,因为当您从 localStorage 获取它时它不是一个数组。

Teh SoTo
2019-04-11