我使用以下代码行将一些值存储到本地存储中;
localStorage.setItem(event.lastEventId, JSON.stringify(data));
查看浏览器控制台,存储看起来像这样;
我想遍历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
为了达到这个目的,我需要改变什么?
感谢任何帮助。
答案 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)
你需要
解析数据,
遍历生成的对象,仅显示其属性的值,
以某种方式将这些组合成一个字符串,可能与,
之间
例如:
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>");
}
直播示例:
// 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;
或者,当然,如果您的结构是静态的,请对属性名称进行硬编码。