仅将新数据存储到localStorage

时间:2016-12-04 16:40:18

标签: jquery local-storage

当我浏览一些文章时,我想在URLs中保存一些localStorage。到目前为止,我写的代码我设法做到了,除了当我遇到我已经查看的相同文章时,它再次保存了他们的网址,因此无需占用空间存储空间。

这是我的代码:

var i = 0;
$(window).on('scroll', function() {
  if (!localStorage.getItem('names')) {
    var data = [];
  } else {
    var data = JSON.parse(localStorage.getItem('names'));
  }
  var x = $("article");
  var url = x.eq(i).attr("data-entry-url");
  data.push(url);

  if ($(window).scrollTop() >= x.eq(i).offset().top && url !== data) {

    localStorage.setItem("names", JSON.stringify(data));
    console.log(data);

    i++;
  }
});

我在那里设置了if url !== data条件,以检查特定文章网址是否已在localStorage中设置,以便再次停止添加,但无效。我该怎么检查呢?

2 个答案:

答案 0 :(得分:0)

url是字符串类型,data数组类型在比较时永远不会为真。因此,如果您与单个网址进行比较,则必须遵循if(url == data[0]);如果您使用数据数组中的所有网址进行检查,则必须遵循if(data.indexOf(url) >= 0)。 试试吧。

答案 1 :(得分:0)

data是一个数组,所以我们需要使用javascript filter函数在数组中循环,然后将其与url进行比较。 如果您需要进一步澄清示例代码,请与我们联系