将空数组返回为 false?
Returning an empty array as false?
我正在练习函数并编写了这段代码以在 inStock 小于每周平均值时打印一个布尔值。该代码适用于该目的。问题是,如果数组未定义,我需要它 return false。目前它无法读取未定义的 'instock value'。如果有人能指出正确的方向,我将不胜感激。
let altInventory = [{
candy: "Twizzlers",
inStock: 180,
weeklyAverage: 200
},
{
candy: "Milk Duds",
inStock: 300,
weeklyAverage: 170
},
]
// ===================================================
function findCandy(inv, cand) {
for (let i = 0; i < inv.length; i++) {
if (inv[i].candy === cand) {
return inv[i];
}
}
}
function shouldWeOrderThisCandy(inv, cand) {
let object = findCandy(inv, cand);
if (object.inStock < object.weeklyAverage) {
return true;
}
return false;
}
我试过加入这个,但似乎没有效果。
if (object.length === 0);
return false
//shouldWeOrderThisCandy(altInventory, "Milk Duds")
//shouldWeOrderThisCandy(altInventory, "Twizzlers")
shouldWeOrderThisCandy(altInventory, "Broccoli")
试试这个:
let altInventory = [
{ candy: "Twizzlers", inStock: 180, weeklyAverage: 200 },
{ candy: "Milk Duds", inStock: 300, weeklyAverage: 170 },
]; // Just in case you made a mistake, you need to put a semi-colon to end the statement.
function findCandy(inv, cand) {
for (let i =0; i < inv.length; i++) {
if (inv[i].candy === cand) { return inv[i]; }
}
return; // Have the function return at the end. You can make it return null or 0.
}
function shouldWeOrderThisCandy(inv, cand) {
let object = findCandy(inv, cand);
// since findCandy() now returns something, check if (object) so that it will work.
if (object && object.inStock < object.weeklyAverage) { return true; }
return false;
}
未定义的变量将评估为“假”。所以你可以尝试这样的事情:
if (object && object.inStock < object.weeklyAverage) {
我正在练习函数并编写了这段代码以在 inStock 小于每周平均值时打印一个布尔值。该代码适用于该目的。问题是,如果数组未定义,我需要它 return false。目前它无法读取未定义的 'instock value'。如果有人能指出正确的方向,我将不胜感激。
let altInventory = [{
candy: "Twizzlers",
inStock: 180,
weeklyAverage: 200
},
{
candy: "Milk Duds",
inStock: 300,
weeklyAverage: 170
},
]
// ===================================================
function findCandy(inv, cand) {
for (let i = 0; i < inv.length; i++) {
if (inv[i].candy === cand) {
return inv[i];
}
}
}
function shouldWeOrderThisCandy(inv, cand) {
let object = findCandy(inv, cand);
if (object.inStock < object.weeklyAverage) {
return true;
}
return false;
}
我试过加入这个,但似乎没有效果。
if (object.length === 0);
return false
//shouldWeOrderThisCandy(altInventory, "Milk Duds")
//shouldWeOrderThisCandy(altInventory, "Twizzlers")
shouldWeOrderThisCandy(altInventory, "Broccoli")
试试这个:
let altInventory = [
{ candy: "Twizzlers", inStock: 180, weeklyAverage: 200 },
{ candy: "Milk Duds", inStock: 300, weeklyAverage: 170 },
]; // Just in case you made a mistake, you need to put a semi-colon to end the statement.
function findCandy(inv, cand) {
for (let i =0; i < inv.length; i++) {
if (inv[i].candy === cand) { return inv[i]; }
}
return; // Have the function return at the end. You can make it return null or 0.
}
function shouldWeOrderThisCandy(inv, cand) {
let object = findCandy(inv, cand);
// since findCandy() now returns something, check if (object) so that it will work.
if (object && object.inStock < object.weeklyAverage) { return true; }
return false;
}
未定义的变量将评估为“假”。所以你可以尝试这样的事情:
if (object && object.inStock < object.weeklyAverage) {