【问题标题】:else if javascript loop not working否则,如果 javascript 循环不起作用
【发布时间】: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


【解决方案1】:

你是d3.csv(function(error) { 和最重要的data.forEach(function(d) { 括号不紧。

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

你的括号不匹配...

Protips:使用 IDE 在您打开一个时自动关闭括号。或者老派的方式,开始手动关闭你的括号,然后写。

【讨论】:

  • 在 jsTester 中测试:www.webtoolkitonline.com/javascript-tester.html 无效。在 jsfiddle 中测试:jsfiddle.net/HollyPony/my5rcqkr/1。批处理右括号。经过我的双手测试......结果相同:/
猜你喜欢
  • 1970-01-01
  • 2016-06-02
  • 2022-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-22
  • 2015-03-09
相关资源
最近更新 更多