2016-12-04 84 views
0

我想節省一些URLslocalStorage當我通過一些文章滾動。到目前爲止,隨着我編寫的代碼我設法做到了這一點,除了當我看到我已經查看過的相同文章時,它再次保存了它們的URL,因此佔用了空間存儲空間。只儲存新數據到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已經被設置爲再次停止添加,但不工作。我還應該如何檢查?

+0

嘗試data.indexOf(URL),以確定該URL的是數據。 [Array.indexOf](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf) – RamblinRose

+0

現在試圖'data.indexOf(URL)'。無法正常工作.. – EddNewGate

回答

0

url是字符串類型,並且data是數組類型在比較時將永遠不會爲真。因此,如果您使用單個網址進行比較,或者您使用數據陣列中的所有網址進行檢查,則必須通過if(url == data[0])後跟if(data.indexOf(url) >= 0)。 試試吧。

0

數據是一個數組,所以我們需要使用JavaScript filter功能循環數組,然後將其與URL比較。 請讓我知道如果你需要任何更多的澄清的示例代碼