在javascript中呈现数组的所有元素时出错
嗨,我有一个名为wincolor的数组,它是由一个包含243个元素的循环生成的。我还有另一个名为uniqueparty的数组,它将过滤器应用于wincolor中的所有元素。我面临的问题是,当呈现uniqueparty时,它只呈现wincolor中243个元素中的9个。它需要渲染所有243元素。有人能帮我解决这个错误吗在javascript中呈现数组的所有元素时出错,javascript,jquery,arrays,function,Javascript,Jquery,Arrays,Function,嗨,我有一个名为wincolor的数组,它是由一个包含243个元素的循环生成的。我还有另一个名为uniqueparty的数组,它将过滤器应用于wincolor中的所有元素。我面临的问题是,当呈现uniqueparty时,它只呈现wincolor中243个元素中的9个。它需要渲染所有243元素。有人能帮我解决这个错误吗 var resultData = []; var uniqueparty= []; var wincolor = []; $.getJSON("h
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);
});
var resultData=[];
var uniqueparty=[];
var wincolor=[];
$.getJSON(“https://spreadsheets.google.com/feeds/list/1IoNqeReOPKNFrYMlK2rnJVuMaLeAgnZneLbKYSQ7bs4/od6/public/values?alt=json,函数(数据){
var len=data.feed.entry.length;
对于(var i=0;iLee是正确的-您的筛选函数需要返回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>
动物变量=[‘猫’、‘狗’、‘老鼠’、‘鱼’、‘大猩猩’、‘大象’、‘鸡’、‘犀牛’];
var filtered=animals.filter(
函数(元素、索引、数组){
if(element.indexOf('i')!=-1){
返回true;
}
返回false;
}
);
控制台.日志(动物);
console.log(过滤);
您可以在此处找到有关Array.filter方法的文档:
我将删除API键并向我们展示一个数据示例。您还可以更改wincolor[I]=[current.gsx$winningparty.$t];
添加if(wincolor.indexOf(current.gsx$winningparty.$t)=-1)uniqueparty[uniqueparty.length]=current.gsx$winningparty.$t;wincolor[I]=[current.gsx$winningparty.$t];
并删除过滤器您需要从过滤器函数返回true以保留元素,看起来您没有这样做?试试这个@Lee谢谢您的快速回复您介意指导我如何做吗我仍在学习编码,因此将感谢所有帮助