Javascript 人类可读的持续时间格式问题未定义错误

Javascript 人类可读的持续时间格式问题未定义错误,javascript,testing,undefined,Javascript,Testing,Undefined,代码通过了除基本测试之外的所有测试。 无法读取未定义属性“val”的类型错误。这段代码通过了所有的测试,我的意思是它可以工作,但是在代码战的基本测试中,我得到了.val未定义的错误。我如何解决这个问题,我快发疯了。因为我几乎在所有情况下都测试了代码,但从未出错。但在这个codewar控制台中,我得到了未定义的错误。请帮帮我 函数格式持续时间(秒){ 常数arr=[]; 如果(秒%31536000!=秒){ 年份=数学下限(秒/31536000); 秒=秒-年*31536000; 如果(年){

代码通过了除基本测试之外的所有测试。 无法读取未定义属性“val”的类型错误。这段代码通过了所有的测试,我的意思是它可以工作,但是在代码战的基本测试中,我得到了.val未定义的错误。我如何解决这个问题,我快发疯了。因为我几乎在所有情况下都测试了代码,但从未出错。但在这个codewar控制台中,我得到了未定义的错误。请帮帮我

函数格式持续时间(秒){
常数arr=[];
如果(秒%31536000!=秒){
年份=数学下限(秒/31536000);
秒=秒-年*31536000;
如果(年){
让数据={
类型:'年',
val:year.toString()
};
arr.push(数据);
}
}
如果(秒%86400!=秒){
让一天=数学楼层(秒/86400);
秒=秒-天*86400;
如果(天){
让数据={
类型:天>1?“天”:“天”,
val:day.toString()
};
arr.push(数据);
}
}
如果(秒%3600!=秒){
让小时=数学楼层(秒/3600);
秒=秒-小时*3600;
若有(小时){
让数据={
类型:小时数>1?“小时数”:“小时数”,
val:hours.toString()
};
arr.push(数据);
}
}
如果(秒%60!=秒){
分钟=数学地板(秒/60);
秒=秒-分钟*60;
若有(分钟){
让数据={
类型:分钟>1?“分钟”:“分钟”,
val:minutes.toString()
};
arr.push(数据);
}
}
如果(秒!=0){
让数据={
类型:秒>1?“秒”:“秒”,
val:seconds.toString()
};
arr.push(数据);
}
让我们重新来过;
如果(arr.length>2){
让常量=`${arr[arr.length-2].val}${arr[arr.length-2].type}和${
arr[arr.length-1].val
}${arr[arr.length-1]。类型}`;
对于(设i=arr.length-3;i>=0;i--){
常量=`${arr[i].val}${arr[i].type},`+常量;
}
res=常数;
}
如果(arr.length==2){
设常量=`${arr[arr.length-2].val}${arr[arr.length-2].type}和${
arr[arr.length-1].val
}${arr[arr.length-1]。类型}`;
res=常数;
}
如果(arr.length<2){
设常数=`${arr[0].val}${arr[0].type}`;
res=常数;
}
返回res;

}
if(arr.length<2)中不存在
arr[0]
。换句话说,缺少
if(arr.length==0)
大小写。还有很多冗余变量赋值。放下
res
常量
;只需使用例如
if(arr.length<2){return`${arr[0].val}${arr[0].type}`;}