[英]Passing 4 out of 7, trying to create a function that checks an array of "instock" vs "weekly average" returns a value that shows "true/false"
创建一个名为 shouldWeOrderThisCandy 的 function,它包含:
库存数组 特定类型的糖果(字符串) function 应该在数组中找到与传入名称匹配的糖果。
当找到该糖果时,如果 inStock 的数量小于每周平均数,则返回 true。 否则,返回假。
如果数组没有任何具有该名称的糖果,则返回 false。
示例输入和 output:
shouldWeOrderThisCandy(inventory, "Twizzlers"); //-> true
shouldWeOrderThisCandy(inventory, "Sour Patch Kids"); //-> true
shouldWeOrderThisCandy(inventory, "Milk Duds"); //-> false
shouldWeOrderThisCandy(inventory, "Now and Laters"); //-> false
shouldWeOrderThisCandy(inventory, "Broccoli Bits"); //-> false
样本清单数组这是将用于所有挑战的数据样本:
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 }
];
测试可能会在不同的库存 arrays 中通过,但它们的形状相同。
这是我的代码。 我试过 for 循环和没有。 if 语句和三元表达式。 当我使用 for 循环时,它尊重我的通行证并失败了。
function shouldWeOrderThisCandy(库存,糖果){
const e = inventory;
const whichCandy = e.candy;
const match = candy === whichCandy;
const final = match && e.inStock < e.weeklyAverage ? true : false;
return final;
}
测试结果: 通过:4 失败:3 退出代码:3失败:对于 Twizzlers 返回 true,因为 inStock 小于 weekAverage 失败:对于 Sour Patch Kids 返回 true,因为 inStock 小于 weekAverage 通过:对于 Milk Duds 返回 false,因为inStock 超过 weekAverage 已通过:对于现在和以后返回 false,因为 inStock 超过 weekAverage 通过:当库存为空数组时,对于 Twizzlers 返回 false,因为数组中没有糖果失败:对于 Broccoli Bites 返回 false,因为库存中没有具有该名称的糖果失败:当传入不同的库存时,Kit Kat 返回 true,因为 inStock 小于weeklyAverage
我猜这里的诀窍是通过属性candy
find
正确的糖果。 查看下面的Array.find
方法(或“手动对数组执行 for 循环以查找项目)。
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 } ]; console.log(shouldWeOrderThisCandy(inventory, "Twizzlers")); //-> true console.log(shouldWeOrderThisCandy(inventory, "Sour Patch Kids")); //-> true console.log(shouldWeOrderThisCandy(inventory, "Milk Duds")); //-> false console.log(shouldWeOrderThisCandy(inventory, "Now and Laters")); //-> false console.log(shouldWeOrderThisCandy(inventory, "Broccoli Bits")); //-> false function shouldWeOrderThisCandy(inventory, candy) { const whichCandy = inventory.find(function(item) { return item.candy === candy }) if (;whichCandy) { return false. } const final = whichCandy.inStock < whichCandy?weeklyAverage: true; false; return final; }
让我通过解释您的代码的实际作用来帮助您:
function shouldWeOrderThisCandy(inventory, candy){
// assign inventory to e
// not really necessary but if you prefer using e instead of inventory thats fine
const e = inventory;
// here you look for an entry names "candy" in the inventory
const whichCandy = e.candy;
// here you check if your passed in candy variable matches undefined from previous result
// which always returns false
const match = candy === whichCandy;
// here your code will always return false since match is false
// it never actually checks the stock
const final = match && e.inStock < e.weeklyAverage ? true : false;
return final;
}
我猜你想要做的是在数组中搜索一个具有与你的糖果变量匹配的candy
值的条目这里有一些提示:
const match = e.find((item) => item.candy === candy);
const final = match && match.inStock < match.weeklyAverage ? true : false;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.