否则如果javascript循环不起作用

时间:2016-10-13 06:56:15

标签: javascript html csv d3.js

我正在尝试计算csv中每个项目的出现次数。我的csv就像:

$(function() {
    $('#side-menu').metisMenu();
});

我正在使用if else来比较事件。但它不是比较字符串而只是递增计数器。

我的代码如下:

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

我的输出应该是:

    <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:9,LPct:0

任何人都有任何想法??`

1 个答案:

答案 0 :(得分:0)

d3.csv(function(error) {以及最重要的data.forEach(function(d) {括号不合近。

编辑: 在jsfiddle中看到你的javascript:https://jsfiddle.net/HollyPony/my5rcqkr/1/

你的括号不匹配......

Protips:打开一个IDE时,使用IDE自动关闭括号。或旧学校方式,手动开始关闭你的括号,然后写入。