好吧,所以我要创建一个天气应用,该应用需要一个邮政编码,并给出当天的当前温度高低,以及未来六天的未来温度。我还添加了具有列出正确日期的Date()函数的功能。但是当它循环回到星期日时出现了一个问题,它在数组的0索引处。我对变量何时通过数字6并将其重置为0进行了条件测试,因此不会遇到未定义的错误。唯一的问题是我仍然遇到那些问题。我将js代码留在下面,它应该足够直接到不需要html的地方。事先也很抱歉,我总是在这里弄糟,大声笑。任何帮助表示赞赏。
下面的JS代码
const weatherButton = document.getElementsByTagName("BUTTON")[0];
const currentTemp = document.getElementsByClassName("weather__main--temp")[0];
const currentDayElement = document.getElementsByClassName("weather__lower--day")[0];
const futureDays = document.getElementsByClassName("weather__item--day");
//Adding functionality for setting days of week on button click
weatherButton.addEventListener("click", () => {
const days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
let now = new Date();
let currentDayIndex = now.getDay();
currentDayElement.innerHTML = days[currentDayIndex];
//Adding days for futurecast
for( let i = 0; i < 6; i++ ) {
if( currentDayIndex > 6 ) { currentDayIndex = 0 };
futureDays[i].innerHTML = days[currentDayIndex + 1];
currentDayIndex++;
};
});
答案 0 :(得分:1)
我想这就是你想要的:
"defines": [
"__WIN32__" # Needed to include the right subheader
],
"msvs_configuration_platform": "win32",
"msvs_settings": {
"VCCLCompilerTool": {
"AdditionalOptions": [
"/EHsc",
"/std:c++17"
]
}
}
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\bin\HostX64\x86\CL.exe /c /I"C:\Users\danni\.node-gyp\10.15.1\include\node" /I"C:\Use
rs\danni\.node-gyp\10.15.1\src" /I"C:\Users\danni\.node-gyp\10.15.1\deps\openssl\config" /I"C:\Users\danni\.node-gyp\10.15.1\deps\openssl\openssl\include" /I"C:\Users\danni\.
node-gyp\10.15.1\deps\uv\include" /I"C:\Users\danni\.node-gyp\10.15.1\deps\zlib" /I"C:\Users\danni\.node-gyp\10.15.1\deps\v8\include" /I..\src /I..\extern\bossa\src /I..\node
_modules\nan /I..\src\compat /Z7 /nologo /W3 /WX- /diagnostics:classic /MP /Ox /Ob2 /Oi /Ot /Oy /GL /D NODE_GYP_MODULE_NAME=bossa /D USING_UV_SHARED=1 /D USING_V8_SHARED=1 /D
V8_DEPRECATION_WARNINGS=1 /D WIN32 /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE /D _HAS_EXCEPTIONS=0 /D VERSION=bossajs /D __WIN32__ /D BUILDING_NODE_EXTENSION /
D _WINDLL /GF /Gm- /MT /GS /Gy /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /GR- /Fo"Release\obj\bossa\\" /Fd"Release\obj\bossa\vc141.pdb" /Gd /TP /wd4351 /wd4355 /wd4800
/wd4251 /wd4275 /wd4244 /wd4267 /analyze- /FC /errorReport:queue /EHsc /std:c++17 ..\src\index.cc ..\src\bossajs.cc ..\src\observer.cc ..\src\connectworker.cc MORE_FILES "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\src\win_delay_load_hook.cc"
index.cc
答案 1 :(得分:1)
您的问题是:
days[currentDayIndex + 1]
当currentDayIndex为0并添加1时,您将从1开始。
这是您要使用的for循环。
for(let i = 0, j = currentDayIndex + 1; i < 6; i++, j++){
if(j > 6){
j = 0
}
futureDays[i].innerHTML = days[j];
}