簡體   English   中英

如何從存儲在本地存儲中的對象數組訪問鍵和值

[英]How to access keys and values from Array of object stored in localstorage

我正在asp.net網頁上的購物車上工作。 我將產品信息以對象的形式存儲在一個數組中,並在用戶單擊“添加到購物車”按鈕時保存在localStorage ,並希望在購物車頁面上訪問該信息。 添加到購物車按鈕上的onclick事件會調用一個函數,並向javascript發送三個值,作為這樣的參數。

onclick="Add('@Row.P_ID','@Row.P_Name','@Row.P_Price')"

這是產品的我的HTML代碼。

<div class="row">
                        @foreach (var Row in db.Query(slctquery))
                        {
                           var pid = Row.P_ID;
                             <div class="col-xs-18 col-sm-6 col-md-3">
                                <div class="thumbnail" style="margin-bottom:10px;">
                                  <img src="@Url.Content(Row.P_Image)" alt="Product Image" style="height:200px;">
                                    <div class="caption">
                                        <h3>@Row.P_Name</h3>
                                        <p style="font-size:large" id="UPrice">@Row.P_Price</p>
                                        <p><a href="@Url.Action("ProductDetail","Home",new{pid=pid})" class="btn btn-info" role="button">View Detail</a>
<a onclick="Add('@Row.P_ID','@Row.P_Name','@Row.P_Price')" id="'@Row.P_ID'" class="btn btn-info" role="button">Add to Cart</a></p>
                                    </div>
                                </div>
                            </div>
                        }      
                    </div><!-- End row -->

我的JavaScript代碼是:

<script>
var Cart=[];
function Add(id,name,price)
{
    var item={
        Pid:id,
        PNme:name,
        Price:price,
        quantity:'1'
    };
    var Cartitem = JSON.stringify(item);
    Cart.push(Cartitem); 
   window.localStorage.setItem("Cart",JSON.stringify(Cart));
}

它工作正常並且數據存儲在localstorage ..但是我想訪問這些對象的屬性(鍵和值),例如購物車html表中的Pid和PNme。 購物車頁面javascript是:

 var cartitem = JSON.parse(localStorage.getItem("Cart"));
    alert(cartitem);

查看我要在其中添加這些值的位置。 購物車表我該怎么做... ..(對英語不佳表示抱歉)

您需要解析作為JSON.parse(localStorage.getItem("Cart"))結果的數組項:

var cartitem = JSON.parse(localStorage.getItem("Cart")).map(JSON.parse);

你可以做這樣的事情

var cartitem=JSON.parse(JSON.parse(window.localStorage.getItem("Cart")));

試試這個,希望它能滿足您的要求

var cartitem = JSON.parse(localStorage.getItem("Cart"));
var i=0, len = cartitem.length;
var dbArray = [], tmpArr = [];
for(;i<len;i++){
   tmpArr.push(cartitem[i].Pid);
   tmpArr.push(cartitem[i].PNme);
   tmpArr.push(cartitem[i].Price);
   tmpArr.push(cartitem[i].quantity);
   dbArray.push(tmpArr);
   tmpArr = [];
}

console.log("Final Db ready Array of records");
console.log(dbArray);

output will be : 
[
   ["abc1", "New Suite", "40400", "1"],
   ["abc2", "New Suite2", "2547", "1"],
   ["abc3", "New Suite3", "100", "8"],
   ["abc4", "New Suite4", "8500", "6"],
   ["abc5", "New Suite5", "10000", "2"],
   ["abc6", "New Suite6", "32000", "1"],
]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM