我有一个用CSV填充大学数据的对象。我试图将数据从对象拉到另一个数组,以显示谷歌图表。
问题是在第一个模检查中它将数据推入数组两次。我不知道为什么在控制台检查中它只运行一次。
看看i%10 == 0
selectedStateArray = states[Object.keys(states)[selectedState]];
console.log(selectedStateArray);
collegeData = [];
for (var i = 0; i < selectedStateArray.length; i++) {
if (i % 10 === 0) {
collegeData.push(selectedStateArray[i]);
console.log('i modulo 10: ' + selectedStateArray[i]);
}
if (year2010.classList.contains('active') && i % 8 === 0 || i % 9 === 0) {
collegeData.push(selectedStateArray[i]);
} else if (year2011.classList.contains('active') && i % 6 === 0 || i % 7 === 0) {
collegeData.push(selectedStateArray[i]);
} else if (year2012.classList.contains('active') && i % 4 === 0 || i % 5 === 0) {
collegeData.push(selectedStateArray[i]);
// console.log('i modulo 4 and 5: '+i);
}
};
答案 0 :(得分:1)
请为循环continue
添加短路:
continue语句在当前或标记循环的当前迭代中终止语句的执行,并在下一次迭代时继续执行循环。
if (i % 10 === 0) {
collegeData.push(selectedStateArray[i]);
console.log('i modulo 10: ' + selectedStateArray[i]);
continue; // <----------------------------------------- add this to prevent more push!
}