我的JS代码:
function getmaxtrophie(list) {
for(var i =0;i<77;i++) {
if (list[i].progress !== 100) {
return list[i];
}
}
}
def createTrophy(name, description, progress, time):
trophy = {
"name": name,
"time": time,
"description": description,
"progress": progress
我的清单的第一个对象: 0:{...} 描述:&#34; Absolviere dein erstes培训&#34; 名字:&#34; Jetzt geht的洛杉矶&#34; 进展:100 时间:&#34; 2017-09-14T16:19:08.000Z&#34;
如果我记录mylist.progress即可获得正确的结果,那么它必须是我的功能才能破坏它吗?
当我检查我的函数的结果时,日志总是显示Undefined。 我以为return会退出循环,因此list元素(list [i])应该是返回值。 不知道为什么它不起作用。 提前致谢
答案 0 :(得分:0)
在您的函数getmaxtrophie
中,并非所有路径都返回一个值:您的return语句可能不会被命中,在这种情况下,您的函数将返回undefined
。
尝试此功能突出显示问题:
function getmaxtrophie(list) {
for(var i =0;i<77;i++) {
if (list[i].progress !== 100) {
return list[i];
}
}
throw 'No item found';
}
我也鼓励你从阵列原型中获利:
const firstItemWithInterestingProgress = list.find(item => item.progress !== 100); //firstItemWithInterestingProgress may be undefined
PS:你打算实现的目标看起来很奇怪。
答案 1 :(得分:0)
我重写了你的createTrophy定义,它似乎现在正常工作。您可以看到我如何定义下面的示例mylist。
function createTrophy(name, description, progress, time) {
return {
"name": name,
"time": time,
"description": description,
"progress": progress
};
}
var mylist = new Array(100);
mylist[0] = { progress: 100, description: 'test', name: 'basic', time: '2017-09-14T16:19:08.000Z' };
mylist[1] = { progress: 100, description: 'test2', name: 'basic2', time: '2017-09-14T16:19:09.000Z' };
mylist[2] = createTrophy('basic3', 'test3', 55, '2017-09-14T16:19:10.000Z');
document.write( getmaxtrophie(mylist).progress );
这是输出:
55
答案 2 :(得分:0)
解决。
问题是我的大脑无法解决这种睡眠不足的问题。 我把它弄乱了我的主。
我写道:
`maxprogressiontrophie=sortlist.getmaxtrophie`
而不是:
maxprogressiontrophie=getmaxtrophie(sortlist);
并忽略了它像7000次,结合转储调用不上传我的整个代码给你们! 对不起,谢谢你的回复。