2016-10-23 12 views
0

WebStorageを使用して自分のサイトに簡単なショッピングカートシステムを実装したいと考えています。商品はのフォーマットの数値の値です。現時点ではストレージで利用可能なアイテムの数が含まれており、それぞれの新しいアイテムがこの形式でWebStorageに追加されたカウンタ値があります:WebStorageから1つのグループの全アイテムを取得する

item<id> = 1:3,5 

今、私はストレージからアイテムをリストに問題があります。ユーザが5つのアイテムを購入し、item0item3item -= 2)を除去する場合、例えば、私は、要素が記憶装置に存在する場合、私がチェックてもループの簡単ですべての値を取得することができないであろう。

var len = parseInt(localStorage.getItem("items")); 
for (let i = 0; i < len; i++) { 
    if (localStorage.getItem("item" + i)) { 
     // show element on the page 
    } 
} 

レン3つになりますが、私はまだ表示されないitem5を持っています。

アイテムのIDの新しい配列を作成し、アイテムをページから削除する必要がありますか、これに対処するより良い方法がありますか?

答えて

1

すべてのコンテンツを処理するには、JSONオブジェクトを使用することをお勧めします。

あなたのコードは、データを設定するために、次のようになります

// initial data 
var cartData = { 
    items: ['item1', 'item2', 'item3'] 
}; 

// stringify your object so it can be saved into localStorage 
localStorage.setItem('cart', JSON.stringify(cartData)); 

その後、あなたは簡単に項目を/ループを削除することができます。

// get cart 
var cartData = JSON.parse(localStorage.getItem('cart')); 

// delete 2nd item 
cartData.items.splice(1, 1); 

// loop through items 
for(var i = 0, l = cartData.items.length; i < l; i++) { 
    // do something with cartData.items[i] 
} 
関連する問題