修复函数adequateWaterTracker。如果日历数组中的所有周都有比没有喝水的时间更长的时间,那么adequateWaterTracker应该返回true。
例如,在这个星期,0,0,3,1,0,4,0,每天代表你那天喝了多少杯水。在这个例子中,只有3天你至少喝了一杯水。
日历由多周表示,[0,0,3,1,0,4,0,1,2,1,2,1,3,1]。
如果你在日历上每周至少喝4天水,那就返回真水。否则,返回false。
我知道我应该添加这样的语句,如果每周水计数器比它多4会返回真。但我做不到。我应该把它加到哪里,怎么加?
function adequateWaterTracker(calendar) {
let noWater = 0;
let water = 0;
debugger
for (let i = 0; i < calendar.length; i++) {
const week = calendar[i];
for (let j = 0; j < week.length ; j++) {
const day = week[j];
if (day=== 0 ) {
noWater++;
} else {
water++;
}
}
}
return noWater < water
}
const calendar1 = [
[0, 0, 3, 1, 0, 4, 0],
[1, 2, 1, 2, 1, 3, 1],
];
console.log(adequateWaterTracker(calendar1)); // false
const calendar2 = [
[1, 1, 1, 1, 1, 1, 1],
[0, 0, 0, 0, 0, 1, 1],
];
console.log(adequateWaterTracker(calendar2)); // false
const calendar3 = [
[1, 1, 1, 1, 0, 0, 0],
[1, 1, 1, 1, 0, 0, 0],
];
console.log(adequateWaterTracker(calendar3)); // true发布于 2022-09-14 18:33:28
您可以使用every方法来检查所有周数组是否都达到了特定的条件,并且在每个星期数组上,您可以通过filter过滤多个或等于一个的天数,然后得到数组的长度并检查它是否等于或大于4。
const adequateWaterTracker = (calendar) => calendar.every(w => w.filter((d) => d >= 1).length >= 4)
const calendar1 = [
[0, 0, 3, 1, 0, 4, 0],
[1, 2, 1, 2, 1, 3, 1],
];
console.log(adequateWaterTracker(calendar1)); // false
const calendar2 = [
[1, 1, 1, 1, 1, 1, 1],
[0, 0, 0, 0, 0, 1, 1],
];
console.log(adequateWaterTracker(calendar2)); // false
const calendar3 = [
[1, 1, 1, 1, 0, 0, 0],
[1, 1, 1, 1, 0, 0, 0],
];
console.log(adequateWaterTracker(calendar3)); // true
发布于 2022-11-05 11:17:15
您可以简单地使用布尔状态,这里我使用prevRow来保持对上一行的检查,我们知道,在迭代内部数组之后,我们需要检查noWater < water?对吧?因此,我们可以在内部for循环的外部添加if块并进行检查。
`
function adequateWaterTracker(calendar) {
let noWater = 0;
let water = 0;
let prevRow = true;
for (let i = 0; i < calendar.length; i++) {
const week = calendar[i];
for (let j = 0; j < week.length; j++) {
const day = calendar[i][j];
if (day === 0) {
noWater++;
} else {
water++;
}
}
// check
if (noWater > water) {
prevRow = false;
break;
}
noWater = 0;
water = 0;
}
return prevRow;
}`
由mina给出的解决方案看起来真的很好,并且遵循了函数方法
谢谢
https://stackoverflow.com/questions/73721483
复制相似问题