ローカルストレージセットアイテムではなく、更新の置き換え

Omidgh:

私はローカルストレージに私のデータを保存しようとしましたsetItemが、私はクローム]タブを更新し、私の配列にデータを追加するとき、のlocalStorageのデータは古いデータと新しいデータセットの代わりに、古いデータその更新を削除します。

ここに私のコードは次のとおりです。


let capacity = 200;
let reservedRooms = 0;
let users = [];

let rsBox = document.getElementById('reservebox');

class Reserver {
    constructor(name , lastName , nCode , rooms){
        this.name = name ;
        this.lastName = lastName ;
        this.nCode = nCode ;
        this.rooms = rooms ;
    }

    saveUser(){
        if(this.rooms > capacity){
            console.log('more than capacity');
        }else{
            users.push({
                name : this.name ,
                lastName : this.lastName ,
                id : this.nCode ,
                rooms : this.rooms
            });
            capacity -= this.rooms ;
            reservedRooms += this.rooms ;
        }
    }

    saveData(){
        localStorage.setItem('list',JSON.stringify(users));
    }



}


rsBox.addEventListener('submit',function(e){

    let rsName = document.getElementById('name').value;
    let rsLastName = document.getElementById('lastname').value;
    let rsNationalCode = Number(document.getElementById('nationalcode').value);
    let rooms = Number(document.getElementById('rooms').value);

    //Save the user data
    let sign = new Reserver(rsName , rsLastName , rsNationalCode , rooms);
    sign.saveUser();
    sign.saveData();





    e.preventDefault();
});
フレーザー:

あなたは、あなたがストレージを持っている項目の中から、ユーザーの配列を移入する必要があり、これを解決するために、空のユーザーアレーあなたはページをリロードするたびに、推進しています。

たとえば、

let users = [];

以下のようなものである必要があります

let users = JSON.parse(localStorage.getItem('list')) || [];

重要な点は、あなたの既存のユーザーは、あなたが、あなたは、基本的にユーザーアレイ新鮮たびにページが読み込まを作成しているしていない、あなたはそれにデータを置く場合、それらに追加できるようにロードする必要があるということで。

それは、それがない場合は、それを作成する場合は、それがロード、配列が初期化されているかどうかを確認することを「loaddataの」機能のようなものを作成することもできます。キーが存在などがない場合は、あなたが任意のキーにアクセスし、デフォルト値を提供するためにそれを使用することができ、この一般的なので、を行うことができます

function loadData(key, def) {
    var data = localStorage.getItem(key);
    return null == data ? def : JSON.parse(data)
} 

それから

// load "list" - set to an empty array if the key isn't present
let users = loadData('list', []);

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=12995&siteId=1