2015-11-04 62 views
0

您好我有一个名为wincolor的数组,由一个包含243个元素的循环生成。我有另一个名为uniqueparty的数组,它将过滤器应用于wincolor中的所有元素。我面临的问题是,当呈现uniqueparty时,它将渲染wincolor中的243个元素中的9个。它需要渲染全部243个元素。有人能帮我排除这个错误吗?在JavaScript中呈现数组中的所有元素的错误

var resultData = []; 
     var uniqueparty= []; 
     var wincolor = []; 
    $.getJSON("https://spreadsheets.google.com/feeds/list/1IoNqeReOPKNFrYMlK2rnJVuMaLeAgnZneLbKYSQ7bs4/od6/public/values?alt=json", function(data) { 
     var len = data.feed.entry.length; 
     for (var i=0; i<len; i++) { 
      //first row "title" column 
      var current = data.feed.entry[i]; 
      resultData[i]= [ 
       current.gsx$constituency.$t, //0 
       current.gsx$winner2010.$t, //1 
       current.gsx$winningparty.$t, //2 
       current.gsx$candidatename1.$t, //3 
       current.gsx$party1.$t,//4 
       current.gsx$candidatename2.$t,//5 
       current.gsx$party2.$t,//6 
       current.gsx$candidatename3.$t,//7 
       current.gsx$party3.$t//8 
       ]; 
       wincolor[i]=[current.gsx$winningparty.$t]; 
      } 
      uniqueparty = wincolor.filter(
       function(a){ 
       if (!this[a]) { 
        this[a] = 1; return a; 
       } 
       },{} 
      ); 
      document.write("Unique Party: "+uniqueparty.length+"<br>"); 
      document.write("Wincolor: "+wincolor.length); 
      }); 
+0

我会删除的API键和向我们展示一个数据的例子。你也可以改变'wincolor [i] = [current.gsx $ winningparty。$ t];'添加if(wincolor.indexOf(current.gsx $ winningparty。$ t)== - 1)uniqueparty [uniqueparty .length ] = current.gsx $ $ winningparty吨。 wincolor [i] = [current.gsx $ winningparty。$ t];'并放弃过滤器 – mplungjan

+0

您需要从过滤器函数返回true以保持元素,看起来好像你没有这样做? – Lee

+0

试试这个http://jsfiddle.net/_alexander_/6L8b9eLr/ –

回答

0

Lee是正确的 - 您的过滤器函数需要返回true或false,以指示您是要保留还是丢弃该元素。这里有一个过滤器,只接受动物字母的一个简单的例子:“我”在他们的名字:

<script> 
    var animals = ['cat', 'dog', 'mouse', 'fish', 'gorilla', 'elephant', 'chicken', 'rhino']; 
    var filtered = animals.filter(
    function(element, index, array) { 
     if (element.indexOf('i') !== -1) { 
     return true; 
     } 
     return false; 
    } 
); 
    console.log(animals); 
    console.log(filtered); 
</script> 

您可以找到Array.filter方法文档在这里: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

相关问题