javascript - 循环返回数组的最后一项

标签 javascript json express

我正在尝试循环访问此 json 对象,我想返回“点”内项目的关联点、总数和百分比。

代码每次循环时仅输出 >100,这是最后一项

    <%
     var connection = appdata.cao.years,
        year = null,
        totalStudents = null,
        points = null

        for(var i=0; i < connection.length;i++) {
            year = connection[i].year;
            totalStudents = connection[i].total;
              for(var j = 0; j < connection[i].points.length;j++){
                 points = connection[i].points[j].id;
            }
     %>
        <p>
            <%=year %>,
            <%=totalStudents %>
            <%=points %>
        </p>

    <%}%>

这是 JSON

{
"name":"cao json",
"description":"breakdown of cao statistics",
"cao":{
    "id":1,
    "years":[
        {
            "id":"1",
            "year":"2015",
            "total":"55045",
            "points":[
                {
                    "id":"2",
                    "points":"600",
                    "total":"215",
                    "percent":"0.4"
                },
                {
                    "id":"3",
                    "points":"500-599",
                    "total":"5431",
                    "percent":"9.9"
                },
                {
                    "id":"4",
                    "points":"400-499",
                    "total":"14097",
                    "percent":"25.6"
                },
                {
                    "id":"5",
                    "points":"300-399",
                    "total":"14446",
                    "percent":"26.2"
                },
                {
                    "id":"6",
                    "points":"200-299",
                    "total":"9768",
                    "percent":"17.7"
                },
                {
                    "id":"7",
                    "points":"100-199",
                    "total":"6562",
                    "percent":"11.9"
                },
                {
                    "id":"8",
                    "points":" >100",
                    "total":"4526",
                    "percent":"8.2"
                }
            ]
        },
        {
            "id":"9",
            "year":"2014",
            "total":"54025",
            "points":[
                {
                    "id":"10",
                    "points":"600",
                    "total":"162",
                    "percent":"0.3"
                },
                {
                    "id":"11",
                    "points":"500-599",
                    "total":"5088",
                    "percent":"9.4"
                },
                {
                    "id":"12",
                    "points":"400-499",
                    "total":"13447",
                    "percent":"24.9"
                },
                {
                    "id":"13",
                    "points":"300-399",
                    "total":"14047",
                    "percent":"26"
                },
                {
                    "id":"14",
                    "points":"200-299",
                    "total":"9584",
                    "percent":"17.7"
                },
                {
                    "id":"15",
                    "points":"100-199",
                    "total":"6926",
                    "percent":"12.8"
                },
                {
                    "id":"16",
                    "points":" >100",
                    "total":"4771",
                    "percent":"8.8"
                }
            ]
        },
        {
            "id":"17",
            "year":"2013",
            "total":"52767",
            "points":[
                {
                    "id":"18",
                    "points":"600",
                    "total":"152",
                    "percent":"0.3"
                },
                {
                    "id":"19",
                    "points":"500-599",
                    "total":"4813",
                    "percent":"9.1"
                },
                {
                    "id":"20",
                    "points":"400-499",
                    "total":"12803",
                    "percent":"24.3"
                },
                {
                    "id":"21",
                    "points":"300-399",
                    "total":"13381",
                    "percent":"25.4"
                },
                {
                    "id":"22",
                    "points":"200-299",
                    "total":"9566",
                    "percent":"18.1"
                },
                {
                    "id":"23",
                    "points":"100-199",
                    "total":"6914",
                    "percent":"13.1"
                },
                {
                    "id":"24",
                    "points":" >100",
                    "total":"5138",
                    "percent":"9.7"
                }
            ]
        },
        {
            "id":"25",
            "year":"2012",
            "total":"52589",
            "points":[
                {
                    "id":"26",
                    "points":"600",
                    "total":"165",
                    "percent":"0.2"
                },
                {
                    "id":"27",
                    "points":"500-599",
                    "total":"5026",
                    "percent":"9.6"
                },
                {
                    "id":"28",
                    "points":"400-499",
                    "total":"12395",
                    "percent":"23.6"
                },
                {
                    "id":"29",
                    "points":"300-399",
                    "total":"13170",
                    "percent":"25"
                },
                {
                    "id":"30",
                    "points":"200-299",
                    "total":"9588",
                    "percent":"18.2"
                },
                {
                    "id":"31",
                    "points":"100-199",
                    "total":"6999",
                    "percent":"13.3"
                },
                {
                    "id":"32",
                    "points":" >100",
                    "total":"5276",
                    "percent":"10"
                }
            ]
        },
        {
            "id":"33",
            "year":"2011",
            "total":"54341",
            "points":[
                {
                    "id":"34",
                    "points":"600",
                    "total":"162",
                    "percent":"0.3"
                },
                {
                    "id":"35",
                    "points":"500-599",
                    "total":"4863",
                    "percent":"8.6"
                },
                {
                    "id":"36",
                    "points":"400-499",
                    "total":"12235",
                    "percent":"22.5"
                },
                {
                    "id":"37",
                    "points":"300-399",
                    "total":"13860",
                    "percent":"18.4"
                },
                {
                    "id":"38",
                    "points":"200-299",
                    "total":"9966",
                    "percent":"18.4"
                },
                {
                    "id":"39",
                    "points":"100-199",
                    "total":"7477",
                    "percent":"13.8"
                },
                {
                    "id":"40",
                    "points":" >100",
                    "total":"5928",
                    "percent":"10.9"
                }
            ]
        },
        {
            "id":"34",
            "year":"2010",
            "total":"54480",
            "points":[
                {
                    "id":"35",
                    "points":"600",
                    "total":"136",
                    "percent":"0.2"
                },
                {
                    "id":"36",
                    "points":"500-599",
                    "total":"4564",
                    "percent":"8.4"
                },
                {
                    "id":"37",
                    "points":"400-499",
                    "total":"11973",
                    "percent":"22"
                },
                {
                    "id":"38",
                    "points":"300-399",
                    "total":"13878",
                    "percent":"25.5"
                },
                {
                    "id":"39",
                    "points":"200-299",
                    "total":"10391",
                    "percent":"19.1"
                },
                {
                    "id":"40",
                    "points":"100-199",
                    "total":"7294",
                    "percent":"13.4"
                },
                {
                    "id":"41",
                    "points":" >100",
                    "total":"6244",
                    "percent":"11.5"
                }
            ]
        }
    ]
}

}

代码是 JavaScript,包裹在 ExpressJS 标签内

最佳答案

你有变量points = null,它重新分配给每个循环迭代,所以而不是

points = connection[i].points[j].id;

你应该使用

points.push(connection[i].points[j].id);

以及更改之前

points = null

points = []

关于javascript - 循环返回数组的最后一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32421444/

相关文章:

javascript - 在 JavaScript 中只使用函数的一个参数

javascript - 如何使用集群增加 NodeJS 服务器的吞吐量?

javascript - 如何同时滑动切换输入和自动对焦?

javascript - 未捕获的 token : when want to get json by ajax

node.js - 如何将 react 错误发送到服务器并记录它?

javascript - 如何在 lodash forEach 中使用 Promise all 并解决它并执行 res.send(data)

java - 如何发送 JSP 作为对 AJAX 调用的响应

java - 如何在android中将arraylist变量从一个类调用到另一个类

json - 从ElasticSearch中的结果文档中排除字段

mysql - 我如何修复 SequelizeDatabaseError : Field 'id' doesn't have a default value?