【发布时间】:2015-07-29 06:04:28
【问题描述】:
我正在开发一个自定义应用程序。它将用户的锻炼计划存储在一个数组中。我的数组格式如下:[week][day][exercise]。一个用户一天可能有多个练习。
我有一个验证锻炼的功能,以确保每周选择正确的锻炼类型。
这是我的功能:
function verifyWorkout(workout, wtype){
var errorlist = "";
try{
for(i=1;i<workout.length;i++){
var cardiocount = 0;
var strengthcount = 0;
var corecount = 0;
var hiitcount = 0;
for(j=1;j<workout[i].length;j++){
for(k=0;k<workout[i][j].length;k++){
if (workout[i][j][k].extype == "Cardio"){
cardiocount += cardiocount + 1;
}else if (workout[i][j][k].extype == "Strength"){
strengthcount += strengthcount + 1;
}else if (workout[i][j][k].extype == "Core"){
corecount += corecount + 1;
}else if (workout[i][j][k].extype == "Hiit"){
hiitcount += hiitcount + 1;
}
}
}
if (wtype === "Beginner"){
if (i = 1){
if (cardiocount < 1){
errorlist = errorlist + "Week 1 requires at least 1 cardio exercise.</br>";
}
if (strengthcount < 1){
errorlist = errorlist + "Week 1 requires at least 1 strength exercise.</br>";
}
if (corecount < 1){
errorlist = errorlist + "Week " + i + " requires at least 1 core exercise.</br>";
}
} else if (i = 2){
if (cardiocount < 2){
errorlist = errorlist + "Week 2 requires at least 2 cardio exercises.</br>";
}
if (strengthcount < 1){
errorlist = errorlist + "Week 2 requires at least 1 strength exercise.</br>";
}
if (corecount < 1){
errorlist = errorlist + "Week " + i + " requires at least 1 core exercise.</br>";
}
} else {
if (cardiocount < 3){
errorlist = errorlist + "Week " + i + " requires at least 3 cardio exercises.</br>";
}
if (strengthcount < 2){
errorlist = errorlist + "Week " + i + " requires at least 2 strength exercises.</br>";
}
if (corecount < 1){
errorlist = errorlist + "Week " + i + " requires at least 1 core exercise.</br>";
}
}
}else if (wtype === "Intermediate"){
if (cardiocount < 3){
errorlist = errorlist + "Week " + i + " requires at least 3 cardio exercises.</br>";
}
if (strengthcount < 2){
errorlist = errorlist + "Week " + i + " requires at least 2 strength exercises.</br>";
}
if (corecount < 1){
errorlist = errorlist + "Week " + i + " requires at least 1 core exercise.</br>";
}
}else if (wtype === "Advanced"){
if (cardiocount < 2){
errorlist = errorlist + "Week " + i + " requires at least 2 cardio exercises.</br>";
}
if (strengthcount < 2){
errorlist = errorlist + "Week " + i + " requires at least 2 strength exercises.</br>";
}
if (hiitcount < 2){
errorlist = errorlist + "Week " + i + " requires at least 2 hiit exercises.</br>";
}
if (corecount < 1){
errorlist = errorlist + "Week " + i + " requires at least 1 core exercise.</br>";
}
}
}
return errorlist;
} catch(err) {
console.log("error retrieving validation....");
console.log(errorlist);
console.log(err);
}
}
当我尝试调用它时,我收到分配大小溢出错误。
请让我知道我做错了什么。
【问题讨论】:
-
if (i = 1)使其陷入无限循环。更改为if (i == 1)(其他地方也一样)。
标签: javascript arrays