嗨,我有一个名为wincolor的数组,它由一个循环生成,其中包含243个元素。我还有一个名为uniqueparty的数组,它将过滤器应用于wincolor中的所有元素。我面临的问题是,当uniqueparty被呈现时,它只呈现出wincolor中的243个元素中的9个。它需要渲染所有243元素。有人能帮我解决这个错误吗?
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);
});
发布于 2015-11-04 12:48:23
Lee是正确的-您的过滤器函数需要返回true或false,以指示您是要保留还是放弃元素。下面是一个过滤器的快速示例,它只接受带有字母"i“的动物:
<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方法的文档:Objects/Array/filter
https://stackoverflow.com/questions/33526431
复制相似问题