Javascript 如何在较大的函数中访问两个嵌套的.forEach的结果
钢笔在这里: 我有一个getJSON,其中我正在处理返回的数据,并使用2Javascript 如何在较大的函数中访问两个嵌套的.forEach的结果,javascript,jquery,foreach,Javascript,Jquery,Foreach,钢笔在这里: 我有一个getJSON,其中我正在处理返回的数据,并使用2构建应该发送到HTML的内容 我想提取每个.forEach的结果,将它们连接起来,并将它们附加到一个ID。但是函数的外部区域无法访问这些变量,我不知道该怎么做 $(document).ready(function () { $.getJSON("https://api3.libcal.com/api_hours_grid.php?iid=000&format=json&weeks=1&systemT
构建应该发送到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);
});});
$(文档).ready(函数(){
$.getJSON(“https://api3.libcal.com/api_hours_grid.php?iid=000&format=json&weeks=1&systemTime=0&callback=?,函数(json){
var day0=(json.locations[0].weeks[0].Sunday);
var day1=(json.locations[0].weeks[0].Monday);
var day2=(json.locations[0]。weeks[0]。周二);
var day3=(json.locations[0].weeks[0].周三);
var day4=(json.locations[0]。weeks[0]。星期四);
var day5=(json.locations[0].weeks[0].Friday);
var day6=(json.locations[0].weeks[0].Saturday);
变量天数=[day0,day1,day2,day3,day4,day5];
var dayNames=[‘星期日’、‘星期一’、‘星期二’、‘星期三’、‘星期四’、‘星期五’、‘星期六’];
dayNames.forEach(函数(foo){
var someContent=““+foo+”,”
});
days.forEach(函数(元素){
var dayDate=element.date
var dayDay=element.rendered
如果(dayDate[5]=“0”){
dayDate=dayDate.substr(6)
}否则{
dayDate=dayDate.substr(5)
}
var moreContent=“+dayDate+”:“+”“+dayDay+” ”
});
var forHTML=someContent+moreContent;
$(“#本周小时”).append(forHTML);
});});
不能100%确定这是否是您的目标,但只需声明&init与渲染调用在同一范围内的变量即可。我修改了你的代码
$(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);
});
});
$(文档).ready(函数(){
$.getJSON(“https://api3.libcal.com/api_hours_grid.php?iid=587&format=json&weeks=1&systemTime=0&callback=?,函数(json){
//此处声明的内容变量
///////////////////////////////////////////
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]。周二);
var day3=(json.locations[0].weeks[0].周三);
var day4=(json.locations[0]。weeks[0]。星期四);
var day5=(json.locations[0].weeks[0].Friday);
var day6=(json.locations[0].weeks[0].Saturday);
变量天数=[day0,day1,day2,day3,day4,day5];
var dayNames=[‘星期日’、‘星期一’、‘星期二’、‘星期三’、‘星期四’、‘星期五’、‘星期六’];
dayNames.forEach(函数(foo){
someContent+=““+foo+”,”
});
days.forEach(函数(元素){
var dayDate=element.date
var dayDay=element.rendered
如果(dayDate[5]=“0”){
dayDate=dayDate.substr(6)
}否则{
dayDate=dayDate.substr(5)
}
moreContent+=“+dayDate+”:“+”“+dayDay+” ”
});
var forHTML=someContent+moreContent;
$(“#本周小时”).append(forHTML);
});
});
不能100%确定这是否是您的目标,但只需声明&init与渲染调用在同一范围内的变量即可。我修改了你的代码
$(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);
});
});
$(文档).ready(函数(){
$.getJSON(“https://api3.libcal.com/api_hours_grid.php?iid=587&format=json&weeks=1&systemTime=0&callback=?,函数(json){
//此处声明的内容变量
///////////////////////////////////////////
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]。周二);
var day3=(json.locations[0].weeks[0].周三);
var day4=(json.locations[0]。weeks[0]。星期四);
var day5=(json.locations[0].weeks[0].Friday);
var day6=(json.locations[0].weeks[0].Saturday);
变量天数=[day0,day1,day2,day3,day4,day5];
var dayNames=[‘星期日’、‘星期一’、‘星期二’、‘星期三’、‘星期四’、‘星期五’、‘星期六’];
dayNames.forEach(函数(foo){
someContent+=““+foo+”,”
});
days.forEach(函数(元素){
var dayDate=element.date
var dayDay=element.rendered
如果(dayDate[5]=“0”){
dayDate=dayDate.substr(6)
}否则{
dayDate=dayDate.substr(5)
}
moreContent+=“+dayDate+”:“+”“+dayDay+” ”
});
var forHTML=someContent+moreContent;
$(“#本周小时”).append(forHTML);
});
});
我知道这个问题已经有了答案,但由于您对自己的结果不太满意,也许下面的内容对您来说仍然很有趣
假设jsn
保存来自JSONP请求的响应,代码可以缩短为以下几行:
var dates=Object.entries(jsn.locations[0].weeks[0]).map(function(val,key)
{
return '<li>'+key+' '+val[0]+' '+val[1].date
+': '+val[1].rendered+'</li>';
})
$('#this-weeks-hours').append('<ul>'+dates.join('\n')+'</ul>');
本周的开放时间
我知道这个问题已经有了答案,但由于您对自己的结果不太满意,也许下面的内容对您来说仍然很有趣
假设jsn
保存来自JSONP请求的响应,代码可以缩短为以下几行:
var dates=Object.entries(jsn.locations[0].weeks[0]).map(function(val,key)
{
return '<li>'+key+' '+val[0]+' '+val[1].date
+': '+val[1].rendered+'</li>';
})
$('#this-weeks-hours').append('<ul>'+dates.join('\n')+'</ul>');
本周的开放时间
您可以使用reduce
连接所有变量。有些人喜欢这样:
days.reduce(function (out, element) {
var dayDate = element.date
var dayDay = element.rendered
if (dayDate[5] === '0') {
dayDate = dayDate.substr(6)
} else {
dayDate = dayDate.substr(5)
}
return out += "" + dayDate + ":</span> " + "<span class='dates'>" + dayDay + "</li>"
}, '');
days.reduce(函数(out,元素){
var dayDate=element.date
var dayDay=element.rendered
如果(日期[5]