首页 > 解决方案 > 从 localStorage 在数组上运行 for 循环

问题描述

我正在创建并存储一个数组localStorage,我想使用for循环将数组解析为divs容器中的单独数组。这是我到目前为止所拥有的:

var arr = ['item 1', 'item 2', 'item 3'];
window.localStorage.setItem('myArr', JSON.stringify(arr));

function populateContainer() {
  var newArr = window.localStorage.getItem('myArr');
  $('.container').html('');
  
  for (var i = 0, len = newArr.length; i < len; i++) {
    $('.container').append('<div>' + newArr[i] + '</div>');
  }
}
populateContainer();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container"></div>

不幸的是,这样做是div为数组项的每个单独字符创建一个单独的字符,所以我最终得到 18divs个字符,每个字符而不是 3divs个数组项的 3 个字符。抱歉,该片段不起作用,显然 SO 不支持localStorage

标签: javascriptjqueryarraysfor-loop

解决方案


您正确地存储了 JSON ,但在检索它localStorage时还需要将其返回:parse()

var arr = JSON.parse(window.localStorage.getItem('myArr'));

工作示例


推荐阅读