Как исправить ошибку 'Array.push не является функцией' в Javascript - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь создать небольшую базу данных с локальным хранилищем для небольшого проекта (просто для эмуляции входа в систему).

Предполагается открыть две подсказки, чтобы спросить имя пользователя и пароль, а затем сохранить их в массиве объектов. Происходит то, что я инициализирую первый элемент массива с объектом администратора и когда после вставки второго пользователя (он позволяет мне добавить еще одного после администратора) он говорит, что 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 Ответ

2 голосов
/ 11 апреля 2019

localStorage хранит пары ключ / значение, но значение сохраняется в виде строк, а не других структур данных.

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

а затем, когда вы получите это:

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

У вас ошибка, потому что когда вы получаете ее от localStorage, это не массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...