【发布时间】:2020-08-18 23:58:30
【问题描述】:
问题是:创建一个函数来检查我们是否需要订购更多糖果。如果 inStock 小于 weekAverage,则返回 true;否则,返回假。但是,无论我对这个函数做什么,我都无法让它正确返回。它为前两个糖果返回真(正确),但也为最后两个返回真,当它们应该为假时。有什么建议么?谢谢!
let inventory = [
{ candy: "Twizzlers", inStock: 180, weeklyAverage: 200 },
{ candy: "Sour Patch Kids", inStock: 90, weeklyAverage: 100 },
{ candy: "Milk Duds", inStock: 300, weeklyAverage: 170 },
{ candy: "Now and Laters", inStock: 150, weeklyAverage: 40 }
];
// write the shouldWeOrderThisCandy function
function shouldWeOrderThisCandy(x, i) {
for (let i = 0; i < x.length; i++) {
if (x[i].inStock < x[i].weeklyAverage) {
return true;
}else {
return false;
}
}
}
【问题讨论】:
-
return在第一次迭代时退出循环 -
“正确”的做法是
const shouldWeOrderThisCandy = Object.fromEntries(inventory.map(entry=>[entry.candy, entry.inStock < entry.weeklyAverage]));- 这将产生一个对象,其中糖果名称作为键,布尔值作为值,指示是否应该补充糖果。 -
谢谢你们的帮助,伙计们!这是针对训练营准备的练习回顾,所以我只是想让它匹配并通过他们的解决方案/期望。现在,它只是告诉我我的函数是通过循环的每次迭代还是失败
-
如何调用
shouldWeOrderThisCandy()函数? -
shouldWeOrderThisCandy();
标签: javascript function return