传递 7 个中的 4 个,尝试创建一个函数来检查 "instock" 与 "weekly average" 数组,并返回一个显示"true/false"的值



创建一个名为shouldWeOrderThisCandy的函数,该函数接受:

库存阵列一种特殊类型的糖果(串(函数应该在数组中找到与传入名称匹配的糖果。

找到糖果后,如果Stock中的数字小于weeklyAverage,则返回true。否则,返回false。

如果数组中没有任何具有该名称的糖果,则返回false。

示例输入和输出:

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 }
];

测试可能在不同的库存阵列中通过,但它们的形状相同。

这是我的代码。我试过循环和不循环。if语句和三元表达式。当我使用for循环时,它尊重我的传球和失败

函数should WeOrderThisCandy(库存,糖果({

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失败:Twizzler返回true,因为inStock小于weeklyAveragefailed:对于Sour Patch Kids返回true,因为inStock小于weeklyAveragepassed:Milk Duds返回false,因为inStock超过周平均值passed:对于Now和Laters返回false,因为inStock超过weeklyAveragepassed:当inventory为空数组时,Twizzler返回false,因为数组中没有糖果失败:Broccoli Bites返回false,因为库存中没有该名称的糖果failed:当传入不同的库存时,Kit Kat返回true,因为inStock小于weekly平均

我想这里的诀窍是通过属性candyfind正确的糖果。检查下面的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变量匹配的candy值的条目这里有一些提示:

const match = e.find((item) => item.candy === candy);
const final = match && match.inStock < match.weeklyAverage ? true : false; 

相关内容

最新更新