簡體   English   中英

如何針對javascript數組過濾rss數據

[英]how to filter rss data against javascript array

我使用以下代碼查找那些不在我的監視列表(項目數組列表)中的項目。 但是每當我運行這段代碼時, 瀏覽器就會凍結 如果我刪除了最后一個其他部分,則程序運行正常,並從rss feed中的監視列表中打印項目。

誰能告訴我我的其他部分出了什么毛病, 原因是它不打印在監視列表中找不到的項目?我的目標是只能從rss feed中打印那些不在監視列表數組中的項目。數組中有大約700個項目,而rss大約有1000個項目!

<script>
$.getJSON('http://anyorigin.com/get?url=http://www.somesite.com/rss.php&callback=?', function(data){

var p=0;

 var siteContents = data.contents;
var parser=new DOMParser();
xmlDoc=parser.parseFromString(siteContents,"text/xml");

var items = xmlDoc.getElementsByTagName("item");


for(i = 0; i < items.length; i++)
{

document.myform2.outputtext2.value +=items[i].getElementsByTagName("itemname")[0].childNodes[0].nodeValue+"\n";


var myVariable =items[i].getElementsByTagName("itemname")[0].childNodes[0].nodeValue;



items=["mango","apple","orange","banana","book","pen"];



              for (var m=0;m<items.length;m++)
              {

                    if (myVariable == items[m])
                    //if (items[m] == myVariable)
                    { 
                      //do nothing

                        p++;
                       document.myform3.outputtext3.value +=myVariable+"\n";
                    }
                    else
                    {
                         //alert (myVariable);
                     document.myform4.outputtext4.value +=myVariable+"\n";

                    };
             };



 };//end of outer for

});


</script>

你的邏輯倒過來了。 您當前的腳本(帶有else語句)在每次不等於監視列表中的一項時都會打印項目-每個項目的打印次數與您的監視列表長一樣多; 在該輸出中產生700000行!

您必須將該條件移出循環。 偽代碼:

found = false
foreach item in watchlist
    if item == myvariable // the one you're searching for
        found = true
        break

if found
then putItSomewhere()
else putItSomewhereElse()

在實際的腳本中,您不會使用循環,而只會使用indexOf Array方法

if (items.indexOf(myVariable) == -1) {
    // not found, so output it
    document.myform4.outputtext4.value +=myVariable+"\n";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM