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

时间:2019-04-11 16:47:30

标签: javascript arrays object local-storage

我正在尝试为一个小型项目创建一个具有本地存储的小型数据库(仅用于模拟登录名)。

应该打开两个提示询问用户名和密码,然后将其存储在对象数组中。发生的是,我使用管理员的对象来初始化数组的第一个元素,并且在插入第二个用户后(让我在管理员之后再添加一个)后,它说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 个答案:

答案 0 :(得分:2)

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

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

,然后在获得它时:

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

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