【发布时间】:2016-10-13 06:56:14
【问题描述】:
我正在尝试计算 csv 中每个项目的出现次数。我的 csv 是这样的:
date item
8/10/2015 mobile
1/25/2015 mobile
10/28/2015 mobile
11/9/2015 mobile
8/2/2015 mobile
9/24/2015 0:00 laptop
9/30/2015 0:00 laptop
5/15/2015 0:00 laptop
7/7/2015 0:00 laptop
我使用 if else 来比较事件。但它不是比较字符串,它只是增加计数器。
我的代码如下:
<div>
<select id="mySelect" onchange="onChange()">
<option value="2016">2016</option>
<option value="2015">2015</option>
<option value="2014">2014</option>
</select>
</div>
<script>
function onChange(){
var selectobject = document.getElementById("mySelect");
var MBct = 0;
var LPct = 0;
d3.csv("item2.csv", function(error,data) {
data.forEach(function(d) {
var date = d.date;
var item = d.item;
a = d.date.split(" ",1);
b=a[0].split("/");
d.year = b[2]*1;
console.log("MBct:"+MBct);
if(selectobject.value == d.year){
console.log("Entered if loop:selectobject.value="+selectobject.value+" ,d.year="+d.year);
console.log("item:"+item);
if(d.item === "mobile"){
MBct = MBct + 1;
console.log("MBct:"+MBct);
}
else if(d.item === "laptop"){
LPct = LPct + 1;
console.log("LPct:"+LPct);
}
else console.log("not present");
})})}
</script>
我的输出应该是这样的:
MBct:5 , LPct:4
它就像:MBct:9,LPct:0
有人知道吗?`
【问题讨论】:
-
你的函数右括号丢失
-
您是否尝试使用 chrome 检查器或类似工具进行调试?
-
如果你的代码缩进得当,你会发现它缺少了一堆右括号。坦率地说,我很惊讶它甚至 有效。
标签: javascript html csv d3.js