【问题标题】:How to fix 'Array.push is not a function' error in Javascript如何修复 Javascript 中的“Array.push 不是函数”错误
【发布时间】:2019-04-12 00:49:56
【问题描述】:

我正在尝试为一个小项目创建一个带有本地存储的小型数据库(只是为了模拟登录)。

它应该打开两个提示询问用户名和密码,然后将其存储在一个对象数组中。发生的情况是,我用管理员的对象启动了数组的第一个元素,当插入第二个用户(它让我在管理员之后再添加一个用户)后,它说 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);

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

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

【问题讨论】:

标签: javascript arrays object local-storage


【解决方案1】:

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

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

然后当你得到它时:

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

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

【讨论】:

  • +1 另外,localStorage.getItem 如果未找到密钥,则返回 null,因此请务必对返回值进行空值检查。
  • 效果很好。我不知道键/值要求。非常感谢
猜你喜欢
  • 2019-07-10
  • 1970-01-01
  • 1970-01-01
  • 2019-12-25
  • 2021-06-12
  • 2019-07-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
相关资源
最近更新 更多