javascript - 如何访问较大函数中两个嵌套 .forEach 的结果

标签 javascript jquery foreach

笔在这里:https://codepen.io/BradCoffield/pen/WEWXqO

我有一个 getJSON,在其中我正在处理返回的数据并使用 2 .forEach 构建应发送到 HTML 的内容

我想提取每个 .forEach 的结果,将它们连接起来并将它们附加到 ID 中。但是函数的外部区域无法访问这些变量,我不知道该怎么办。

$(document).ready(function () {

$.getJSON("https://api3.libcal.com/api_hours_grid.php?iid=000&format=json&weeks=1&systemTime=0&callback=?", function (json) {

    var day0 = (json.locations[0].weeks[0].Sunday);
    var day1 = (json.locations[0].weeks[0].Monday);
    var day2 = (json.locations[0].weeks[0].Tuesday);
    var day3 = (json.locations[0].weeks[0].Wednesday);
    var day4 = (json.locations[0].weeks[0].Thursday);
    var day5 = (json.locations[0].weeks[0].Friday);
    var day6 = (json.locations[0].weeks[0].Saturday);

    var days = [day0, day1, day2, day3, day4, day5];
    var dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];


    dayNames.forEach(function (foo) {
        var someContent = "<li id='" + foo + '-hours'+"'><span class='day-of-week'>" + foo + ", "


    });

    days.forEach(function (element) {

        var dayDate = element.date
        var dayDay = element.rendered

        if (dayDate[5] === '0') {
            dayDate = dayDate.substr(6)
        } else {
            dayDate = dayDate.substr(5)
        }

        var moreContent = "" +  dayDate + ":</span> " + "<span class='dates'>" + dayDay + "</li>"

    });


    var forHTML = someContent + moreContent;


    $('#this-weeks-hours').append(forHTML);


});});

最佳答案

不能 100% 确定这是否是您的目标,但只需在与渲染调用相同的范围内声明和初始化变量即可。我修改了您的代码来执行此操作。

$(document).ready(function () {

    $.getJSON("https://api3.libcal.com/api_hours_grid.php?iid=587&format=json&weeks=1&systemTime=0&callback=?", function (json) {

        //content variables declared here
        ///////////////////////////////////////////
        var someContent = '';
        var moreContent = '';
        ///////////////////////////////////////////


        var day0 = (json.locations[0].weeks[0].Sunday);
        var day1 = (json.locations[0].weeks[0].Monday);
        var day2 = (json.locations[0].weeks[0].Tuesday);
        var day3 = (json.locations[0].weeks[0].Wednesday);
        var day4 = (json.locations[0].weeks[0].Thursday);
        var day5 = (json.locations[0].weeks[0].Friday);
        var day6 = (json.locations[0].weeks[0].Saturday);

        var days = [day0, day1, day2, day3, day4, day5];
        var dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];


        dayNames.forEach(function (foo) {
            someContent += "<li id='" + foo + '-hours'+"'><span class='day-of-week'>" + foo + ", "


        });

        days.forEach(function (element) {

            var dayDate = element.date
            var dayDay = element.rendered

            if (dayDate[5] === '0') {
                dayDate = dayDate.substr(6)
            } else {
                dayDate = dayDate.substr(5)
            }

            moreContent += "" +  dayDate + ":</span> " + "<span class='dates'>" + dayDay + "</li>"

        });


        var forHTML = someContent + moreContent;
        $('#this-weeks-hours').append(forHTML);


    });

});

关于javascript - 如何访问较大函数中两个嵌套 .forEach 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46058799/

相关文章:

javascript - 是的日期验证+ 1天

javascript - 使用 Swipe 支持如何将菜单滑回?

javascript - 解析 Promise 数组

javascript - React Hooks 尝试在数组 ref 中使用 useState

php 数组 foreach 循环

jquery - 具有变量、事件和 DOM 操作的多个 jQuery 实例

javascript - 可以更改圈子输入中的字符吗?

javascript - .css 背景图像出现在悬停在列表元素中

C# foreach 循环导致 CS 0246 Type or namespace could not be found

PHP 多维数组 : Finding a multi-element sub-array match . .. 是否有循环的替代选项?