LocalStorage getItem和Loop Values

时间:2017-08-18 15:41:05

标签: javascript html5 loops local-storage

我使用以下代码行将一些值存储到本地存储中;

localStorage.setItem(event.lastEventId, JSON.stringify(data));

查看浏览器控制台,存储看起来像这样;

enter image description here

我想遍历localstorage并显示

我到目前为止的循环是;

for (var i = 0; i < localStorage.length; i++) {
  $("#result").prepend("New transaction " + localStorage.getItem(localStorage.key(i)) + "<br>");
}

#result显示以下内容;

  

新交易{&#34; TimeStamp&#34;:&#34; 2017-08-18   16:34:15&#34;&#34;方向&#34;:&#34;缺货&#34;&#34; CardNo&#34;:&#34; 40160433&#34;&#34;的SerialNo& #34;:20559458}

     

新交易{&#34; TimeStamp&#34;:&#34; 2017-08-18   16:34:55&#34;&#34;方向&#34;:&#34;在&#34;&#34; CardNo&#34;:&#34; 40160432&#34;&#34;的SerialNo& #34;:20559459}

我想只显示值,而不是关联键。例如;

  

新交易2017-08-18   16:34:15,Out,40160433,20559458

     

新交易2017-08-18   16:34:55,In,40160432,20559459

为了达到这个目的,我需要改变什么?

感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

getItem()会返回一个字符串。因此,为了实现您想要的,您需要在JSON中解析返回的字符串并提取值。像这样:

for (var i = 0; i < localStorage.length; i++) {
    let data = JSON.parse(localStorage.getItem(localStorage.key(i)));
    $("#result").prepend("New transaction " + data.TimeStamp + ", " + \ 
         data. Out + ", " + data. CardNo + ", " + data. SerialNo + "<br>");
}

答案 1 :(得分:0)

你需要

  1. 解析数据,

  2. 遍历生成的对象,仅显示其属性的

  3. 以某种方式将这些组合成一个字符串,可能与,之间

  4. 例如:

    for (var i = 0; i < localStorage.length; i++) {
      var obj = JSON.parse(localStorage.getItem(localStorage.key(i)));
      var str = Object.keys(obj).map(function(key) { return obj[key]; }).join(", ");
      $("#result").prepend("New transaction " + str + "<br>");
    }
    

    直播示例:

    &#13;
    &#13;
    // The string from local storage
    var stringFromLocalStorage = '{"TimeStamp":"2017-08-18 16:34:15","Direction":"Out","CardNo":"40160433","SerialNo":20559458}';
    
    var obj = JSON.parse(stringFromLocalStorage);
    var str = Object.keys(obj).map(function(key) { return obj[key]; }).join(", ");
    $("#result").prepend("New transaction " + str + "<br>");
    &#13;
    <div id="result"></div>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    &#13;
    &#13;
    &#13;

    或者,当然,如果您的结构是静态的,请对属性名称进行硬编码。